[AArch64] Enable shrink-wrapping by default.
authorQuentin Colombet <qcolombet@apple.com>
Wed, 18 Nov 2015 23:12:20 +0000 (23:12 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Wed, 18 Nov 2015 23:12:20 +0000 (23:12 +0000)
Differential Revision: http://reviews.llvm.org/D14360

rdar://problem/20820748

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253520 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64FrameLowering.h
test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll

index 16dab2f5754f3a775826aa6172f7e48e96ade6e1..427afdf4acbf0736dfea29551023b9264bb453c4 100644 (file)
@@ -60,6 +60,11 @@ public:
 
   void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs,
                             RegScavenger *RS) const override;
 
   void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs,
                             RegScavenger *RS) const override;
+
+  /// Returns true if the target will correctly handle shrink wrapping.
+  bool enableShrinkWrapping(const MachineFunction &MF) const override {
+    return true;
+  }
 };
 
 } // End llvm namespace
 };
 
 } // End llvm namespace
index 83b9d0a30ae0258854071b0908ed75c3704dda27..fbe5e8e19707895c7788c611a6fb4c18a83c272f 100644 (file)
@@ -522,10 +522,10 @@ bb1:
 
 ; CHECK-LABEL: realign_conditional2
 ; Extra realignment in the prologue (performance issue).
 
 ; CHECK-LABEL: realign_conditional2
 ; Extra realignment in the prologue (performance issue).
+; CHECK:  tbz  {{.*}} .[[LABEL:.*]]
 ; CHECK:  sub  x9, sp, #32            // =32
 ; CHECK:  and  sp, x9, #0xffffffffffffffe0
 ; CHECK:  mov   x19, sp
 ; CHECK:  sub  x9, sp, #32            // =32
 ; CHECK:  and  sp, x9, #0xffffffffffffffe0
 ; CHECK:  mov   x19, sp
-; CHECK:  tbz  {{.*}} .[[LABEL:.*]]
 ; Stack is realigned in a non-entry BB.
 ; CHECK:  sub  [[REG:x[01-9]+]], sp, #64
 ; CHECK:  and  sp, [[REG]], #0xffffffffffffffe0
 ; Stack is realigned in a non-entry BB.
 ; CHECK:  sub  [[REG:x[01-9]+]], sp, #64
 ; CHECK:  and  sp, [[REG]], #0xffffffffffffffe0