make jump threading handle lexically identical compare instructions

as if they were multiple uses of the same instruction.  This interacts
well with the existing loadpre that j-t does to open up many new jump
threads earlier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73768 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-06-19 16:27:56 +00:00
parent 225503a5b5
commit 79c740ff47
2 changed files with 47 additions and 4 deletions

View File

@@ -0,0 +1,30 @@
; RUN: llvm-as < %s | opt -jump-threading -die | llvm-dis | grep icmp | count 1
declare void @f1()
declare void @f2()
declare void @f3()
define i32 @test(i32 %A) {
%tmp455 = icmp eq i32 %A, 42
br i1 %tmp455, label %BB1, label %BB2
BB2:
call void @f1()
br label %BB1
BB1:
%tmp459 = icmp eq i32 %A, 42
br i1 %tmp459, label %BB3, label %BB4
BB3:
call void @f2()
ret i32 3
BB4:
call void @f3()
ret i32 4
}