reimplement multiple return value handling in IPSCCP, making it

more aggressive an correct.  This survives building llvm in 64-bit
mode with optimizations and the built llvm passes make check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85973 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-11-03 23:40:48 +00:00
parent 5a1cd36019
commit fc36a562ae
2 changed files with 205 additions and 126 deletions

View File

@@ -1,5 +1,4 @@
; RUN: opt < %s -ipsccp -S | FileCheck %s
; XFAIL: *
;;======================== test1
@@ -128,7 +127,7 @@ B:
; CHECK: define i64 @test5b()
; CHECK: A:
; CHECK-NEXT: %c = call i64 @test5c(%0 %a)
; CHECK-NEXT: ret i64 %c
; CHECK-NEXT: ret i64 5
define internal i64 @test5c({i64,i64} %a) {
%b = extractvalue {i64,i64} %a, 0