fix an IPSCCP bug I introduced when I changed IPSCCP to start working on

functions that don't have local linkage.  Basically, we need to be more
careful about propagating argument information to functions whose results
we aren't tracking.  This fixes a miscompilation of 
LLVMCConfigurationEmitter.cpp when built with an llvm-gcc that has ipsccp
enabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85923 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-11-03 19:24:51 +00:00
parent 954cb43c80
commit 2396cc37ae
2 changed files with 51 additions and 19 deletions

View File

@@ -174,4 +174,24 @@ define i32 @test7b() {
; CHECK-NEXT: ret i32 36
}
;;======================== test8
define internal {} @test8a(i32 %A, i32* %P) {
store i32 %A, i32* %P
ret {} {}
; CHECK: @test8a
; CHECK-NEXT: store i32 5,
; CHECK-NEXT: ret
}
define void @test8b(i32* %P) {
%X = call {} @test8a(i32 5, i32* %P)
ret void
; CHECK: define void @test8b
; CHECK-NEXT: call {} @test8a
; CHECK-NEXT: ret void
}