summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorWeiming Zhao <weimingz@codeaurora.org>2016-01-08 18:37:43 +0000
committerWeiming Zhao <weimingz@codeaurora.org>2016-01-08 18:37:43 +0000
commit48c033e021b8b9682ce87becae75b13934d5f84a (patch)
tree822deddcde6f653a559eadc0efd1baff419ef105 /llvm/lib
parent6788b62f0901bc80c4fb6cb2df27e059c6f9d5dc (diff)
downloadbcm5719-llvm-48c033e021b8b9682ce87becae75b13934d5f84a.tar.gz
bcm5719-llvm-48c033e021b8b9682ce87becae75b13934d5f84a.zip
Disable shrink-wrap for Thumb1
Summary: In ARMConstantIslandPass, which runs after Shrink Wrap pass, long jumps will be fixed up as BL (tBfar) which depends on spilling LR in epilogue. However, shrink-wrap may remove the LR, which causes issues when the function returns. Reviewers: qcolombet, rengolin Subscribers: aemerson, rengolin Differential Revision: http://reviews.llvm.org/D15984 llvm-svn: 257187
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/Thumb1FrameLowering.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/Thumb1FrameLowering.h b/llvm/lib/Target/ARM/Thumb1FrameLowering.h
index 812f9830824..27faac63683 100644
--- a/llvm/lib/Target/ARM/Thumb1FrameLowering.h
+++ b/llvm/lib/Target/ARM/Thumb1FrameLowering.h
@@ -53,6 +53,11 @@ public:
/// \p MBB will be correctly handled by the target.
bool canUseAsEpilogue(const MachineBasicBlock &MBB) const override;
+ /// Disable shrink wrap as tBfar/BL will be used to adjust for long jumps.
+ bool enableShrinkWrapping(const MachineFunction &MF) const override {
+ return false;
+ }
+
private:
/// Check if the frame lowering of \p MF needs a special fixup
/// code sequence for the epilogue.
OpenPOWER on IntegriCloud