[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