summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Switch over Transforms/Scalar to use the STATISTIC macro. For each statisticChris Lattner2006-12-191-3/+4
| | | | | | | converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-2/+2
| | | | | | is 'unsigned'. llvm-svn: 32279
* For PR786:Reid Spencer2006-11-021-1/+0
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* Add a workaround for PR962, disabling the more aggressive form of thisChris Lattner2006-10-221-0/+8
| | | | | | transformation. This speeds up a C++ app 2.25x. llvm-svn: 31113
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* Implement Transforms/TailCallElim/return-undef.ll, a trivial caseChris Lattner2005-11-051-0/+1
| | | | | | that has been sitting in my inbox since May 18. :) llvm-svn: 24194
* Use the new 'moveBefore' method to simplify some code. Really, which isChris Lattner2005-08-081-1/+1
| | | | | | easier to understand? :) llvm-svn: 22706
* Fix typoCVS: ↵Chris Lattner2005-08-071-1/+1
| | | | | | ---------------------------------------------------------------------- llvm-svn: 22692
* * Use the new PHINode::hasConstantValue method to simplify some codeChris Lattner2005-08-071-26/+66
| | | | | | | | | | | * Teach this code to move allocas out of the loop when tail call eliminating a call marked 'tail'. This implements TailCallElim/move_alloca_for_tail_call.ll * Do not perform this transformation if a call is marked 'tail' and if there are allocas that we cannot move out of the loop in #2. Doing so would increase the stack usage of the function. This implements fixes PR615 and TailCallElim/dont-tce-tail-marked-call.ll. llvm-svn: 22690
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-271-1/+1
| | | | llvm-svn: 22523
* If a function contains no allocas, all of the calls in it are triviallyChris Lattner2005-05-091-3/+45
| | | | | | suitable for tail calls. llvm-svn: 21836
* Remove trailing whitespaceMisha Brukman2005-04-211-7/+7
| | | | llvm-svn: 21427
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-2/+2
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Adjust to the new BasicBlock ctor, which requires a function parameterChris Lattner2004-02-041-1/+1
| | | | llvm-svn: 11114
* Refactor code just a little bit, allowing us to implement ↵Chris Lattner2003-12-141-51/+68
| | | | | | TailCallElim/return_constant.ll llvm-svn: 10467
* Implement: TailCallElim/accum_recursion_constant_arg.llChris Lattner2003-12-081-6/+60
| | | | | | Also make sure to clean up any PHI nodes that are inserted which are pointless. llvm-svn: 10333
* Implement: test/Regression/Transforms/TailCallElim/accum_recursion.llChris Lattner2003-12-081-12/+122
| | | | | | | | We now insert accumulator variables as necessary to eliminate tail recursion more aggressively. This is still fairly limited, but allows us to transform fib/factorial, and other functions into nice happy loops. :) llvm-svn: 10332
* Cleanup and restructure the code to make it easier to read and maintain.Chris Lattner2003-12-081-53/+126
| | | | | | | | | | | | | | The only functionality change is that we now implement: Regression/Transforms/TailCallElim/intervening-inst.ll Which is really kinda pointless, because it means that trivially dead code does not interfere with -tce, but trivially dead code probably wouldn't be around anytime when this pass is run anyway. The point of including this change it to support other more aggressive transformations when we have the analysis capabilities to do so. llvm-svn: 10312
* Minor cleanups and simplificationsChris Lattner2003-11-211-1/+1
| | | | llvm-svn: 10127
* Start using the nicer terminator auto-insertion APIChris Lattner2003-11-201-5/+5
| | | | llvm-svn: 10111
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Rename Function::getEntryNode -> getEntryBlockChris Lattner2003-09-201-1/+1
| | | | llvm-svn: 8625
* Fix a really obvious huge gaping bug, add a commentChris Lattner2003-09-201-1/+2
| | | | llvm-svn: 8620
* Expose the TCE passChris Lattner2003-09-201-0/+3
| | | | llvm-svn: 8619
* New transformation: tail recursion eliminationChris Lattner2003-09-201-0/+96
llvm-svn: 8618
OpenPOWER on IntegriCloud