[llvm-commits] CVS: llvm/test/Regression/Transforms/TailCallElim/accum_recursion_constant_arg.ll

Chris Lattner lattner at cs.uiuc.edu
Mon Dec 8 17:42:01 PST 2003


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

accum_recursion_constant_arg.ll added (r1.1)

---
Log message:

Whoops, forgot to check this in.  :)


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

Index: llvm/test/Regression/Transforms/TailCallElim/accum_recursion_constant_arg.ll
diff -c /dev/null llvm/test/Regression/Transforms/TailCallElim/accum_recursion_constant_arg.ll:1.1
*** /dev/null	Mon Dec  8 17:41:19 2003
--- llvm/test/Regression/Transforms/TailCallElim/accum_recursion_constant_arg.ll	Mon Dec  8 17:41:09 2003
***************
*** 0 ****
--- 1,22 ----
+ ; This is a more aggressive form of accumulator recursion insertion, which 
+ ; requires noticing that X doesn't change as we perform the tailcall.  Thanks
+ ; go out to the anonymous users of the demo script for "suggesting" 
+ ; optimizations that should be done.  :)
+ 
+ ; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
+ 
+ int %mul(int %x, int %y) {
+ entry:
+         %tmp.1 = seteq int %y, 0
+         br bool %tmp.1, label %return, label %endif
+ 
+ endif:
+         %tmp.8 = add int %y, -1
+         %tmp.5 = call int %mul( int %x, int %tmp.8 )
+         %tmp.9 = add int %tmp.5, %x
+         ret int %tmp.9
+ 
+ return:
+         ret int %x
+ }
+ 





More information about the llvm-commits mailing list