Changes in directory llvm/test/CodeGen/ARM:

2007-05-05-InvalidPushPop.ll added (r1.1)
---
Log message:

Fix PR1390: http://llvm.org/PR1390 .
Don't spill extra register to align the stack.


---
Diffs of the changes:  (+41 -0)

 2007-05-05-InvalidPushPop.ll |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+)


Index: llvm/test/CodeGen/ARM/2007-05-05-InvalidPushPop.ll
diff -c /dev/null llvm/test/CodeGen/ARM/2007-05-05-InvalidPushPop.ll:1.1
*** /dev/null   Sat May  5 18:44:51 2007
--- llvm/test/CodeGen/ARM/2007-05-05-InvalidPushPop.ll  Sat May  5 18:44:41 2007
***************
*** 0 ****
--- 1,41 ----
+ ; RUN: llvm-as < %s | llc | not grep r11
+ 
+ target triple = "thumb-linux-gnueabi"
+       %struct.__sched_param = type { i32 }
+       %struct.pthread_attr_t = type { i32, i32, %struct.__sched_param, i32, 
i32, i32, i32, i8*, i32 }
+ @i.1882 = internal global i32 1               ; <i32*> [#uses=2]
+ @.str = internal constant [14 x i8] c"Thread 1: %d\0A\00"             ; <[14 
x i8]*> [#uses=1]
+ @.str1 = internal constant [14 x i8] c"Thread 2: %d\0A\00"            ; <[14 
x i8]*> [#uses=1]
+ 
+ define i8* @f(i8* %a) {
+ entry:
+       %tmp1 = load i32* @i.1882               ; <i32> [#uses=1]
+       %tmp2 = add i32 %tmp1, 1                ; <i32> [#uses=2]
+       store i32 %tmp2, i32* @i.1882
+       %tmp34 = inttoptr i32 %tmp2 to i8*              ; <i8*> [#uses=1]
+       ret i8* %tmp34
+ }
+ 
+ define i32 @main() {
+ entry:
+       %t = alloca i32, align 4                ; <i32*> [#uses=4]
+       %ret = alloca i32, align 4              ; <i32*> [#uses=3]
+       %tmp1 = call i32 @pthread_create( i32* %t, %struct.pthread_attr_t* 
null, i8* (i8*)* @f, i8* null )              ; <i32> [#uses=0]
+       %tmp2 = load i32* %t            ; <i32> [#uses=1]
+       %ret3 = bitcast i32* %ret to i8**               ; <i8**> [#uses=2]
+       %tmp4 = call i32 @pthread_join( i32 %tmp2, i8** %ret3 )         ; <i32> 
[#uses=0]
+       %tmp5 = load i32* %ret          ; <i32> [#uses=1]
+       %tmp7 = call i32 (i8*, ...)* @printf( i8* getelementptr ([14 x i8]* 
@.str, i32 0, i32 0), i32 %tmp5 )           ; <i32> [#uses=0]
+       %tmp8 = call i32 @pthread_create( i32* %t, %struct.pthread_attr_t* 
null, i8* (i8*)* @f, i8* null )              ; <i32> [#uses=0]
+       %tmp9 = load i32* %t            ; <i32> [#uses=1]
+       %tmp11 = call i32 @pthread_join( i32 %tmp9, i8** %ret3 )                
; <i32> [#uses=0]
+       %tmp12 = load i32* %ret         ; <i32> [#uses=1]
+       %tmp14 = call i32 (i8*, ...)* @printf( i8* getelementptr ([14 x i8]* 
@.str1, i32 0, i32 0), i32 %tmp12 )                ; <i32> [#uses=0]
+       ret i32 0
+ }
+ 
+ declare i32 @pthread_create(i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)
+ 
+ declare i32 @pthread_join(i32, i8**)
+ 
+ declare i32 @printf(i8*, ...)



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to