add bitcode reader support for blockaddress. We can now fully

round trip blockaddress through .ll and .bc files, so add a testcase.

There are still a bunch of places in the optimizer and other places
that need to be updated to work with these constructs, but at least
the basics are in now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85377 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-10-28 05:53:48 +00:00
parent 837e04a8bf
commit 50b136dae9
3 changed files with 52 additions and 3 deletions

View File

@@ -25,13 +25,19 @@ Case4: ; preds = %0
}
@Addr = global i8* blockaddress(@indbrtest, %BB1)
@Addr3 = global i8* blockaddress(@squared, %Case1)
define i32 @indbrtest(i8* %P, i32* %Q) {
indirectbr i8* %P, [label %BB1, label %BB2, label %BB3]
BB1:
indirectbr i32* %Q, []
BB2:
indirectbr i32* %Q, [label %BB1, label %BB2]
%R = bitcast i8* blockaddress(@indbrtest, %BB3) to i8*
indirectbr i8* %R, [label %BB1, label %BB2, label %BB3]
BB3:
ret i32 2
}