Enable aligned NEON spilling by default.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 6 Jan 2012 22:19:37 +0000 (22:19 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 6 Jan 2012 22:19:37 +0000 (22:19 +0000)
Experiments show this to be a small speedup for modern ARM cores.

llvm-svn: 147689

llvm/lib/Target/ARM/ARMFrameLowering.cpp
llvm/test/CodeGen/ARM/spill-q.ll
llvm/test/CodeGen/Thumb2/aligned-spill.ll

index deac545..5f54d49 100644 (file)
@@ -28,7 +28,7 @@
 using namespace llvm;
 
 cl::opt<bool>
-SpillAlignedNEONRegs("align-neon-spills", cl::Hidden,
+SpillAlignedNEONRegs("align-neon-spills", cl::Hidden, cl::init(true),
                      cl::desc("Align ARM NEON spills in prolog and epilog"));
 
 static MachineBasicBlock::iterator
index bf4e55c..057ea11 100644 (file)
@@ -11,7 +11,7 @@ declare <4 x float> @llvm.arm.neon.vld1.v4f32(i8*, i32) nounwind readonly
 
 define void @aaa(%quuz* %this, i8* %block) {
 ; CHECK: aaa:
-; CHECK: bic sp, sp, #15
+; CHECK: bic {{.*}}, #15
 ; CHECK: vst1.64 {{.*}}sp, :128
 ; CHECK: vld1.64 {{.*}}sp, :128
 entry:
index 948c8ce..c98ca80 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc < %s -mcpu=cortex-a8 | FileCheck %s
-; RUN: llc < %s -mcpu=cortex-a8 -align-neon-spills | FileCheck %s --check-prefix=NEON
+; RUN: llc < %s -mcpu=cortex-a8 -align-neon-spills=0 | FileCheck %s
+; RUN: llc < %s -mcpu=cortex-a8 -align-neon-spills=1 | FileCheck %s --check-prefix=NEON
 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
 target triple = "thumbv7-apple-ios"