aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-03 06:10:59 +0000
committerChris Lattner <sabre@nondot.org>2007-10-03 06:10:59 +0000
commite1bb6ab7b0594f47906d928a8f82b45514366436 (patch)
tree8dc2a7b19e504ed37fcb190ccc20db003f88a08c
parent4ec2c7eba000cfcb79e05a097275cc8dfc0ffa15 (diff)
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42573 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/README.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 37b671f34b..2db7e64874 100644
--- a/lib/Target/README.txt
+++ b/lib/Target/README.txt
@@ -427,6 +427,22 @@ return:
//===---------------------------------------------------------------------===//
+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);
+ }
+}
+
+//===---------------------------------------------------------------------===//
+
Argument promotion should promote arguments for recursive functions, like
this: