diff options
author | Evan Cheng <evan.cheng@apple.com> | 2010-10-19 18:58:51 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2010-10-19 18:58:51 +0000 |
commit | 2312842de0c641107dd04d7e056d02491cc781ca (patch) | |
tree | 95cb951c694a628d7bc9bac370b2fd929dd343d5 /test/CodeGen/X86/2008-10-27-CoalescerBug.ll | |
parent | 9cb4c7f87876ec8212bd4fae059553fcaa83f484 (diff) | |
download | external_llvm-2312842de0c641107dd04d7e056d02491cc781ca.zip external_llvm-2312842de0c641107dd04d7e056d02491cc781ca.tar.gz external_llvm-2312842de0c641107dd04d7e056d02491cc781ca.tar.bz2 |
Re-enable register pressure aware machine licm with fixes. Hoist() may have
erased the instruction during LICM so UpdateRegPressureAfter() should not
reference it afterwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116845 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/2008-10-27-CoalescerBug.ll')
-rw-r--r-- | test/CodeGen/X86/2008-10-27-CoalescerBug.ll | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/test/CodeGen/X86/2008-10-27-CoalescerBug.ll b/test/CodeGen/X86/2008-10-27-CoalescerBug.ll index afeb358..9d144a4 100644 --- a/test/CodeGen/X86/2008-10-27-CoalescerBug.ll +++ b/test/CodeGen/X86/2008-10-27-CoalescerBug.ll @@ -1,6 +1,9 @@ -; RUN: llc < %s -march=x86 -mattr=+sse2 -stats |& not grep {Number of register spills} +; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -stats |& FileCheck %s +; Now this test spills one register. But a reload in the loop is cheaper than +; the divsd so it's a win. define fastcc void @fourn(double* %data, i32 %isign) nounwind { +; CHECK: fourn entry: br label %bb @@ -11,6 +14,11 @@ bb: ; preds = %bb, %entry %1 = icmp sgt i32 %0, 2 ; <i1> [#uses=1] br i1 %1, label %bb30.loopexit, label %bb +; CHECK: %bb30.loopexit +; CHECK: divsd %xmm0 +; CHECK: movsd %xmm0, 16(%esp) +; CHECK: .align +; CHECK-NEXT: %bb3 bb3: ; preds = %bb30.loopexit, %bb25, %bb3 %2 = load i32* null, align 4 ; <i32> [#uses=1] %3 = mul i32 %2, 0 ; <i32> [#uses=1] |