diff options
| author | Andrew Trick <atrick@apple.com> | 2011-09-01 00:54:31 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2011-09-01 00:54:31 +0000 |
| commit | 832a6a190905f055036972ea0a49312f5de11cb0 (patch) | |
| tree | f00b493f9f51a4d4e9377f0ded38d971ea0b9db1 /llvm/test | |
| parent | b9a899995d28f5b3e8d284c30522527a4726d097 (diff) | |
| download | bcm5719-llvm-832a6a190905f055036972ea0a49312f5de11cb0.tar.gz bcm5719-llvm-832a6a190905f055036972ea0a49312f5de11cb0.zip | |
PreRA scheduler should avoid cloning compares.
Added canClobberReachingPhysRegUse() to handle a particular pattern in
which a two-address instruction could be forced to interfere with
EFLAGS, causing a compare to be unnecessarilly cloned.
Fixes rdar://problem/5875261
llvm-svn: 138924
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll b/llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll index b040095195c..cd2952afdb4 100644 --- a/llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll +++ b/llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll @@ -1,4 +1,12 @@ -; RUN: llc < %s -march=x86 | not grep pushf +; RUN: llc < %s -march=x86 | FileCheck %s +; +; Test scheduling a multi-use compare. We should neither spill flags +; nor clone the compare. +; CHECK: cmp +; CHECK-NOT: pushf +; CHECK: cmov +; CHECK-NOT: cmp +; CHECK: cmov %struct.indexentry = type { i32, i8*, i8*, i8*, i8*, i8* } |

