diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2009-11-07 21:10:15 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2009-11-07 21:10:15 +0000 |
commit | b9397262b7acf938f0958072a9765921ceead706 (patch) | |
tree | e40c9594d107f3c293c2dff2c0da656d4536b87e /llvm/lib/Target | |
parent | d7aa9d8a636e1555b4706949f6eee4a867b0fa2b (diff) | |
download | bcm5719-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.txt | 16 |
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) { |