use a 'register pressure reducing' scheduler
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 4 Aug 2006 12:48:42 +0000 (12:48 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 4 Aug 2006 12:48:42 +0000 (12:48 +0000)
make sure only one move is used in a hello world

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

lib/Target/ARM/ARMISelDAGToDAG.cpp
test/CodeGen/ARM/hello.ll [new file with mode: 0644]

index 000efaadde19083d3277964cd2c4d2ca8b6e3ae1..34d972ffa76b6d6b37c0124b221e1692ac7b3054 100644 (file)
@@ -44,6 +44,8 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
   setOperationAction(ISD::RET,           MVT::Other, Custom);
   setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
   setOperationAction(ISD::ConstantPool,  MVT::i32,   Custom);
+
+  setSchedulingPreference(SchedulingForRegPressure);
 }
 
 namespace llvm {
diff --git a/test/CodeGen/ARM/hello.ll b/test/CodeGen/ARM/hello.ll
new file mode 100644 (file)
index 0000000..61354a0
--- /dev/null
@@ -0,0 +1,13 @@
+; RUN: llvm-as < %s | llc -march=arm &&
+; RUN: llvm-as < %s | llc -march=arm | grep mov | wc -l | grep 1
+%str = internal constant [12 x sbyte] c"Hello World\00"                ; <[12 x sbyte]*> [#uses=1]
+
+implementation   ; Functions:
+
+int %main() {
+entry:
+       %tmp = call int %puts( sbyte* getelementptr ([12 x sbyte]* %str, int 0, uint 0) )               ; <int> [#uses=0]
+       ret int 0
+}
+
+declare int %puts(sbyte*)