summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-09-01 00:54:31 +0000
committerAndrew Trick <atrick@apple.com>2011-09-01 00:54:31 +0000
commit832a6a190905f055036972ea0a49312f5de11cb0 (patch)
treef00b493f9f51a4d4e9377f0ded38d971ea0b9db1 /llvm/test
parentb9a899995d28f5b3e8d284c30522527a4726d097 (diff)
downloadbcm5719-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.ll10
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* }
OpenPOWER on IntegriCloud