summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMSubtarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMSubtarget.cpp19
1 files changed, 4 insertions, 15 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp
index 7a57376a689..eb4d39b01cb 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.cpp
+++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp
@@ -98,9 +98,8 @@ ARMSubtarget::ARMSubtarget(const Triple &TT, const std::string &CPU,
const ARMBaseTargetMachine &TM, bool IsLittle,
bool MinSize)
: ARMGenSubtargetInfo(TT, CPU, FS), UseMulOps(UseFusedMulOps),
- ReservedGPRegisters(ARM::GPRRegClass.getNumRegs()), CPUString(CPU),
- OptMinSize(MinSize), IsLittle(IsLittle), TargetTriple(TT),
- Options(TM.Options), TM(TM),
+ CPUString(CPU), OptMinSize(MinSize), IsLittle(IsLittle),
+ TargetTriple(TT), Options(TM.Options), TM(TM),
FrameLowering(initializeFrameLowering(CPU, FS)),
// At this point initializeSubtargetDependencies has been called so
// we can query directly.
@@ -254,18 +253,8 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
(Options.UnsafeFPMath || isTargetDarwin()))
UseNEONForSinglePrecisionFP = true;
- if (isRWPI() || (isTargetMachO() && !HasV6Ops))
- ReservedGPRegisters.set(9);
-
- // Throw an error when trying to reserve a target's FP register. It may
- // be used by the compiler even when frame pointer elimination is enabled.
- // FIXME: Throw this error if -frame-pointer=none is not set; otherwise
- // only emit a warning.
- const int restFP = (useR7AsFramePointer()) ? 7 : 11;
- if (isGPRegisterReserved(restFP))
- report_fatal_error(
- "Register r" + std::to_string(restFP) +
- " has been specified but is used as the frame pointer for this target.");
+ if (isRWPI())
+ ReserveR9 = true;
// If MVEVectorCostFactor is still 0 (has not been set to anything else), default it to 2
if (MVEVectorCostFactor == 0)
OpenPOWER on IntegriCloud