[llvm-commits] CVS: llvm/test/Regression/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll

Chris Lattner lattner at cs.uiuc.edu
Wed Dec 10 11:10:01 PST 2003


Changes in directory llvm/test/Regression/Transforms/LoopSimplify:

2003-12-10-ExitBlocksProblem.ll added (r1.1)

---
Log message:

New testcase which caused a bunch of tests to break last night with more 
aggressive LICM


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

Index: llvm/test/Regression/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
diff -c /dev/null llvm/test/Regression/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll:1.1
*** /dev/null	Wed Dec 10 11:09:45 2003
--- llvm/test/Regression/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll	Wed Dec 10 11:09:35 2003
***************
*** 0 ****
--- 1,42 ----
+ ; LoopSimplify is breaking LICM on this testcase because the exit blocks from
+ ; the loop are reachable from more than just the exit nodes: the exit blocks
+ ; have predecessors from outside of the loop!
+ ;
+ ; This is distilled from a monsterous crafty example.
+ 
+ ; RUN: llvm-as < %s | opt -licm | lli
+ 
+ %G = weak global int 0		; <int*> [#uses=13]
+ 
+ implementation   ; Functions:
+ 
+ int %main() {
+ entry:
+ 	store int 123, int* %G
+ 	br label %loopentry.i
+ 
+ loopentry.i:		; preds = %entry, %endif.1.i
+ 	%tmp.0.i = load int* %G		; <int> [#uses=1]
+ 	%tmp.1.i = seteq int %tmp.0.i, 123		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %Out.i, label %endif.0.i
+ 
+ endif.0.i:		; preds = %loopentry.i
+ 	%tmp.3.i = load int* %G		; <int> [#uses=1]
+ 	%tmp.4.i = seteq int %tmp.3.i, 126		; <bool> [#uses=1]
+ 	br bool %tmp.4.i, label %ExitBlock.i, label %endif.1.i
+ 
+ endif.1.i:		; preds = %endif.0.i
+ 	%tmp.6.i = load int* %G		; <int> [#uses=1]
+ 	%inc.i = add int %tmp.6.i, 1		; <int> [#uses=1]
+ 	store int %inc.i, int* %G
+ 	br label %loopentry.i
+ 
+ Out.i:		; preds = %loopentry.i
+ 	store int 0, int* %G
+ 	br label %ExitBlock.i
+ 
+ ExitBlock.i:		; preds = %endif.0.i, %Out.i
+ 	%tmp.7.i = load int* %G		; <int> [#uses=1]
+ 	ret int %tmp.7.i
+ }
+ 





More information about the llvm-commits mailing list