[llvm-commits] CVS: llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll call_sink_pure_function.ll

Chris Lattner lattner at cs.uiuc.edu
Sun Mar 14 22:11:01 PST 2004


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

call_sink_const_function.ll added (r1.1)
call_sink_pure_function.ll added (r1.1)

---
Log message:

New testcases to test LICM of call instructions


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

Index: llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll
diff -c /dev/null llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll:1.1
*** /dev/null	Sun Mar 14 22:10:18 2004
--- llvm/test/Regression/Transforms/LICM/call_sink_const_function.ll	Sun Mar 14 22:10:08 2004
***************
*** 0 ****
--- 1,16 ----
+ ; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 sin | grep Out: 
+ declare double %sin(double)
+ declare void %foo()
+ 
+ double %test(double %X) {
+ 	br label %Loop
+ 
+ Loop:
+ 	call void %foo()    ;; Unknown effects!
+ 
+ 	%A = call double %sin(double %X)   ;; Can still hoist/sink call
+ 	br bool true, label %Loop, label %Out
+ 
+ Out:
+ 	ret double %A
+ }


Index: llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll
diff -c /dev/null llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll:1.1
*** /dev/null	Sun Mar 14 22:10:18 2004
--- llvm/test/Regression/Transforms/LICM/call_sink_pure_function.ll	Sun Mar 14 22:10:08 2004
***************
*** 0 ****
--- 1,14 ----
+ ; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 strlen | grep Out: 
+ declare int %strlen(sbyte*)
+ declare void %foo()
+ 
+ int %test(sbyte* %P) {
+ 	br label %Loop
+ 
+ Loop:
+ 	%A = call int %strlen(sbyte* %P)   ;; Can hoist/sink call
+ 	br bool false, label %Loop, label %Out
+ 
+ Out:
+ 	ret int %A
+ }





More information about the llvm-commits mailing list