[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