diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp index e642aa61d57..5b678bd2799 100644 --- a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp +++ b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp @@ -68,7 +68,7 @@ namespace { const ARMSubtarget *STI; ARMFunctionInfo *AFI; RegScavenger *RS; - bool isThumb2; + bool isThumb1, isThumb2; bool runOnMachineFunction(MachineFunction &Fn) override; @@ -1520,6 +1520,10 @@ bool ARMLoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) { STI = &TM.getSubtarget<ARMSubtarget>(); RS = new RegScavenger(); isThumb2 = AFI->isThumb2Function(); + isThumb1 = AFI->isThumbFunction() && !isThumb2; + + // Don't do anything in this pass with Thumb1 for now. + if (isThumb1) return false; bool Modified = false; for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E; @@ -1581,6 +1585,11 @@ bool ARMPreAllocLoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) { MRI = &Fn.getRegInfo(); MF = &Fn; + ARMFunctionInfo *AFI = Fn.getInfo<ARMFunctionInfo>(); + bool isThumb1 = AFI->isThumbFunction() && !AFI->isThumb2Function(); + // Don't do anything in this pass with Thumb1 for now. + if (isThumb1) return false; + bool Modified = false; for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E; ++MFI) |