Changes in directory llvm/lib/Transforms/Scalar:
TailRecursionElimination.cpp updated: 1.23 -> 1.24 --- Log message: Add a workaround for PR962: http://llvm.org/PR962 , disabling the more aggressive form of this transformation. This speeds up a C++ app 2.25x. --- Diffs of the changes: (+8 -0) TailRecursionElimination.cpp | 8 ++++++++ 1 files changed, 8 insertions(+) Index: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp diff -u llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.23 llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.24 --- llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:1.23 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp Sun Oct 22 13:42:26 2006 @@ -140,6 +140,14 @@ FunctionContainsEscapingAllocas |= CheckForEscapingAllocas(BB, CannotTCETailMarkedCall); } + + /// FIXME: The code generator produces really bad code when an 'escaping + /// alloca' is changed from being a static alloca to being a dynamic alloca. + /// Until this is resolved, disable this transformation if that would ever + /// happen. This bug is PR962. + if (FunctionContainsEscapingAllocas) + return false; + // Second pass, change any tail calls to loops. for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits