RangeIsDefinedByCopyFromReg() should check for subreg_to_reg, insert_subreg,

and extract_subreg as a "copy" that defines a valno.
Also fixes a typo. These two issues prevent a simple subreg coalescing from
happening before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2009-11-04 08:33:14 +00:00
parent 092543ca71
commit 50608bac2f
2 changed files with 37 additions and 6 deletions

View File

@@ -0,0 +1,15 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin11 | FileCheck %s
; rdar://7362871
define void @bar(i32 %b, i32 %a) nounwind optsize ssp {
entry:
; CHECK: leal 15(%rsi), %edi
; CHECK-NOT: movl
; CHECK: call _foo
%0 = add i32 %a, 15 ; <i32> [#uses=1]
%1 = zext i32 %0 to i64 ; <i64> [#uses=1]
tail call void @foo(i64 %1) nounwind
ret void
}
declare void @foo(i64)