summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-11-07 21:10:15 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-11-07 21:10:15 +0000
commitb9397262b7acf938f0958072a9765921ceead706 (patch)
treee40c9594d107f3c293c2dff2c0da656d4536b87e /llvm/lib/Target
parentd7aa9d8a636e1555b4706949f6eee4a867b0fa2b (diff)
downloadbcm5719-llvm-b9397262b7acf938f0958072a9765921ceead706.tar.gz
bcm5719-llvm-b9397262b7acf938f0958072a9765921ceead706.zip
Improve tail call elimination to handle the switch statement.
llvm-svn: 86403
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/README.txt16
1 files changed, 0 insertions, 16 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt
index 7018b61f68f..dce29b82755 100644
--- a/llvm/lib/Target/README.txt
+++ b/llvm/lib/Target/README.txt
@@ -406,22 +406,6 @@ return: ; preds = %then.1, %else.0, %then.0
//===---------------------------------------------------------------------===//
-Tail recursion elimination is not transforming this function, because it is
-returning n, which fails the isDynamicConstant check in the accumulator
-recursion checks.
-
-long long fib(const long long n) {
- switch(n) {
- case 0:
- case 1:
- return n;
- default:
- return fib(n-1) + fib(n-2);
- }
-}
-
-//===---------------------------------------------------------------------===//
-
Tail recursion elimination should handle:
int pow2m1(int n) {
OpenPOWER on IntegriCloud