summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMSubtarget.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-02-15 23:22:32 +0000
committerBill Wendling <isanbard@gmail.com>2013-02-15 23:22:32 +0000
commitba6867d0ce3de9b7b4385f98d215edfcd36c4b32 (patch)
treeb5c483b7451619c7a0dbc16a4bb5b5eaa5aa9375 /lib/Target/ARM/ARMSubtarget.cpp
parent9be8b4fc92e1ace819a78db512c1f945c1471be7 (diff)
downloadllvm-ba6867d0ce3de9b7b4385f98d215edfcd36c4b32.tar.gz
llvm-ba6867d0ce3de9b7b4385f98d215edfcd36c4b32.tar.bz2
llvm-ba6867d0ce3de9b7b4385f98d215edfcd36c4b32.tar.xz
Temporary revert of 175320.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175322 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r--lib/Target/ARM/ARMSubtarget.cpp84
1 files changed, 39 insertions, 45 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index e11314d4fc..c33bb9d5bc 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -45,55 +45,51 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &CPU,
const std::string &FS)
: ARMGenSubtargetInfo(TT, CPU, FS)
, ARMProcFamily(Others)
+ , HasV4TOps(false)
+ , HasV5TOps(false)
+ , HasV5TEOps(false)
+ , HasV6Ops(false)
+ , HasV6T2Ops(false)
+ , HasV7Ops(false)
+ , HasVFPv2(false)
+ , HasVFPv3(false)
+ , HasVFPv4(false)
+ , HasNEON(false)
+ , UseNEONForSinglePrecisionFP(false)
+ , UseMulOps(UseFusedMulOps)
+ , SlowFPVMLx(false)
+ , HasVMLxForwarding(false)
+ , SlowFPBrcc(false)
+ , InThumbMode(false)
+ , HasThumb2(false)
+ , IsMClass(false)
+ , NoARM(false)
+ , PostRAScheduler(false)
+ , IsR9Reserved(ReserveR9)
+ , UseMovt(false)
+ , SupportsTailCall(false)
+ , HasFP16(false)
+ , HasD16(false)
+ , HasHardwareDivide(false)
+ , HasHardwareDivideInARM(false)
+ , HasT2ExtractPack(false)
+ , HasDataBarrier(false)
+ , Pref32BitThumb(false)
+ , AvoidCPSRPartialUpdate(false)
+ , AvoidMOVsShifterOperand(false)
+ , HasRAS(false)
+ , HasMPExtension(false)
+ , FPOnlySP(false)
+ , AllowsUnalignedMem(false)
+ , Thumb2DSP(false)
+ , UseNaClTrap(false)
, stackAlignment(4)
, CPUString(CPU)
, TargetTriple(TT)
, TargetABI(ARM_ABI_APCS) {
- initializeEnvironment();
resetSubtargetFeatures(CPU, FS);
}
-void ARMSubtarget::initializeEnvironment() {
- HasV4TOps = false;
- HasV5TOps = false;
- HasV5TEOps = false;
- HasV6Ops = false;
- HasV6T2Ops = false;
- HasV7Ops = false;
- HasVFPv2 = false;
- HasVFPv3 = false;
- HasVFPv4 = false;
- HasNEON = false;
- UseNEONForSinglePrecisionFP = false;
- UseMulOps = UseFusedMulOps;
- SlowFPVMLx = false;
- HasVMLxForwarding = false;
- SlowFPBrcc = false;
- InThumbMode = false;
- HasThumb2 = false;
- IsMClass = false;
- NoARM = false;
- PostRAScheduler = false;
- IsR9Reserved = ReserveR9;
- UseMovt = false;
- SupportsTailCall = false;
- HasFP16 = false;
- HasD16 = false;
- HasHardwareDivide = false;
- HasHardwareDivideInARM = false;
- HasT2ExtractPack = false;
- HasDataBarrier = false;
- Pref32BitThumb = false;
- AvoidCPSRPartialUpdate = false;
- AvoidMOVsShifterOperand = false;
- HasRAS = false;
- HasMPExtension = false;
- FPOnlySP = false;
- AllowsUnalignedMem = false;
- Thumb2DSP = false;
- UseNaClTrap = false;
-}
-
void ARMSubtarget::resetSubtargetFeatures(const MachineFunction *MF) {
AttributeSet FnAttrs = MF->getFunction()->getAttributes();
Attribute CPUAttr = FnAttrs.getAttribute(AttributeSet::FunctionIndex,
@@ -104,10 +100,8 @@ void ARMSubtarget::resetSubtargetFeatures(const MachineFunction *MF) {
!CPUAttr.hasAttribute(Attribute::None) ?CPUAttr.getValueAsString() : "";
std::string FS =
!FSAttr.hasAttribute(Attribute::None) ? FSAttr.getValueAsString() : "";
- if (!FS.empty()) {
- initializeEnvironment();
+ if (!FS.empty())
resetSubtargetFeatures(CPU, FS);
- }
}
void ARMSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {