diff options
-rw-r--r-- | lib/Target/XCore/XCoreISelLowering.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/XCore/shedulingPreference.ll | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/Target/XCore/XCoreISelLowering.cpp b/lib/Target/XCore/XCoreISelLowering.cpp index 6fc7eef544..9917ca3083 100644 --- a/lib/Target/XCore/XCoreISelLowering.cpp +++ b/lib/Target/XCore/XCoreISelLowering.cpp @@ -79,7 +79,7 @@ XCoreTargetLowering::XCoreTargetLowering(XCoreTargetMachine &XTM) setStackPointerRegisterToSaveRestore(XCore::SP); - setSchedulingPreference(Sched::RegPressure); + setSchedulingPreference(Sched::Source); // Use i32 for setcc operations results (slt, sgt, ...). setBooleanContents(ZeroOrOneBooleanContent); diff --git a/test/CodeGen/XCore/shedulingPreference.ll b/test/CodeGen/XCore/shedulingPreference.ll new file mode 100644 index 0000000000..6c2ac6dce4 --- /dev/null +++ b/test/CodeGen/XCore/shedulingPreference.ll @@ -0,0 +1,25 @@ +; RUN: llc < %s -march=xcore + +define void @f( ) { +entry: + + switch i32 undef, label %default [ + i32 0, label %start + ] + +start: + br label %end + +default: + %arg = fadd double undef, undef + %res = call double @f2(i32 undef, double %arg, double undef) + br label %end + +end: + %unused = phi double [ %res, %default ], [ undef, %start ] + + unreachable +} + +declare double @f2(i32, double, double) + |