[llvm-commits] [poolalloc] r78194 - /poolalloc/trunk/Regressions/2009-08-05.unions.ll
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Wed Aug 5 08:24:18 PDT 2009
Author: alenhar2
Date: Wed Aug 5 10:24:11 2009
New Revision: 78194
URL: http://llvm.org/viewvc/llvm-project?rev=78194&view=rev
Log:
union example
Added:
poolalloc/trunk/Regressions/2009-08-05.unions.ll
Added: poolalloc/trunk/Regressions/2009-08-05.unions.ll
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/Regressions/2009-08-05.unions.ll?rev=78194&view=auto
==============================================================================
--- poolalloc/trunk/Regressions/2009-08-05.unions.ll (added)
+++ poolalloc/trunk/Regressions/2009-08-05.unions.ll Wed Aug 5 10:24:11 2009
@@ -0,0 +1,38 @@
+; ModuleID = 'foo.o'
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
+target triple = "x86_64-unknown-linux-gnu"
+ %struct.pa = type <{ i8, i32*, i8 }>
+ at .str = private constant [25 x i8] c"Hello World %d %d %s %s\0A\00", align 1 ; <[25 x i8]*> [#uses=1]
+ at .str1 = private constant [22 x i8] c"Hello World %d %d %s\0A\00", align 1 ; <[22 x i8]*> [#uses=1]
+
+define void @foo(i32* nocapture %y) nounwind noinline {
+entry:
+ store i32 3, i32* %y, align 4
+ ret void
+}
+
+define void @bar(%struct.pa* nocapture %S, i32* %v) nounwind {
+entry:
+ %0 = getelementptr %struct.pa* %S, i64 0, i32 0 ; <i8*> [#uses=1]
+ store i8 0, i8* %0, align 1
+ %1 = getelementptr %struct.pa* %S, i64 0, i32 1 ; <i32**> [#uses=1]
+ store i32* %v, i32** %1, align 1
+ %2 = getelementptr %struct.pa* %S, i64 0, i32 2 ; <i8*> [#uses=1]
+ store i8 0, i8* %2, align 1
+ ret void
+}
+
+define i32 @main(i32 %argc, i8** nocapture %argv) nounwind {
+entry:
+ %0 = malloc i32 ; <i32*> [#uses=2]
+ store i32 %argc, i32* %0, align 8
+ tail call void @foo(i32* %0) nounwind noinline
+ %1 = getelementptr i8** %argv, i64 1 ; <i8**> [#uses=1]
+ %2 = load i8** %1, align 8 ; <i8*> [#uses=1]
+ %3 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([25 x i8]* @.str, i64 0, i64 0), i32 %argc, i32 2, i8* %2) nounwind ; <i32> [#uses=0]
+ %4 = load i8** %argv, align 8 ; <i8*> [#uses=1]
+ %5 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([22 x i8]* @.str1, i64 0, i64 0), i32 %argc, i32 2, i8* %4) nounwind ; <i32> [#uses=0]
+ ret i32 %argc
+}
+
+declare i32 @printf(i8* nocapture, ...) nounwind
More information about the llvm-commits
mailing list