diff options
author | Robert Lytton <robert@xmos.com> | 2013-09-09 10:42:05 +0000 |
---|---|---|
committer | Robert Lytton <robert@xmos.com> | 2013-09-09 10:42:05 +0000 |
commit | 7c739380ee6e03cae74cc7280d974882778020b9 (patch) | |
tree | d281944f71ee35e22e4bb8210e0c1653b2a746bc | |
parent | 5c28673c3b745176302267e523ba274ae6465034 (diff) | |
download | llvm-7c739380ee6e03cae74cc7280d974882778020b9.tar.gz llvm-7c739380ee6e03cae74cc7280d974882778020b9.tar.bz2 llvm-7c739380ee6e03cae74cc7280d974882778020b9.tar.xz |
XCore target: change to Sched::Source
This sidesteps a bug in PrescheduleNodesWithMultipleUses() which
does not check if callResources will be affected by the transformation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190299 91177308-0d34-0410-b5e6-96231b3b80d8
-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) + |