summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar
Commit message (Collapse)AuthorAgeFilesLines
* Finegrainify namespacificationChris Lattner2004-01-0914-80/+37
| | | | llvm-svn: 10725
* Improve encapsulation in the Loop and LoopInfo classes by eliminating theChris Lattner2004-01-083-26/+24
| | | | | | | getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. llvm-svn: 10714
* More minor non-functional changes. This now computes the exit condition, thoughChris Lattner2003-12-231-15/+52
| | | | | | it doesn't do anything with it. llvm-svn: 10590
* Don't mind me, I'm just refactoring away. This patch makes room for LFTR, butChris Lattner2003-12-221-90/+130
| | | | | | contains no functionality changes. llvm-svn: 10583
* Implement IndVarsSimplify/pointer-indvars.ll, transforming pointerChris Lattner2003-12-221-9/+19
| | | | | | arithmetic into "array subscripts" llvm-svn: 10580
* Fix PR194Chris Lattner2003-12-221-56/+85
| | | | llvm-svn: 10573
* Fix ADCE/2003-12-19-MergeReturn.llxChris Lattner2003-12-191-7/+8
| | | | llvm-svn: 10539
* Remove the wierd "Operands" loop, by traversing basicblocks in reverse orderChris Lattner2003-12-191-14/+14
| | | | llvm-svn: 10536
* Implement LICM/sink_multiple.ll, by sinking all possible instructions in theChris Lattner2003-12-191-20/+55
| | | | | | loop before hoisting any. llvm-svn: 10534
* Generalize a special case to fix PR187Chris Lattner2003-12-191-18/+28
| | | | llvm-svn: 10531
* Factor code out into the Utils libraryChris Lattner2003-12-191-23/+3
| | | | llvm-svn: 10530
* Reverted back to previous revision - this was previously mergedJohn Criswell2003-12-181-8/+15
| | | | | | according to the CVS log messages. llvm-svn: 10517
* Merged in RELEASE_11.John Criswell2003-12-181-15/+8
| | | | llvm-svn: 10516
* When we delete instructions from the loop, make sure to remove them from theChris Lattner2003-12-181-0/+2
| | | | | | AliasSetTracker as well. llvm-svn: 10507
* Fix for PR185 & IndVarsSimplify/2003-12-15-Crash.llxChris Lattner2003-12-151-0/+9
| | | | llvm-svn: 10473
* Refactor code just a little bit, allowing us to implement ↵Chris Lattner2003-12-141-51/+68
| | | | | | TailCallElim/return_constant.ll llvm-svn: 10467
* Do not promote volatile alias sets into registersChris Lattner2003-12-141-1/+1
| | | | llvm-svn: 10458
* Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other ↵Chris Lattner2003-12-111-2/+11
| | | | | | known problems in the universe. llvm-svn: 10409
* Fix bug: LICM/sink_multiple_exits.llChris Lattner2003-12-101-1/+1
| | | | | | Thanks for pointing this out John :) llvm-svn: 10387
* Don't allow dead instructions to stop sinking early.Chris Lattner2003-12-101-10/+9
| | | | llvm-svn: 10386
* Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llxChris Lattner2003-12-101-0/+5
| | | | llvm-svn: 10385
* Finegrainify namespacificationChris Lattner2003-12-101-11/+11
| | | | | | Fix bug: LowerInvoke/2003-12-10-Crash.llx llvm-svn: 10382
* Finegrainify namespacificationChris Lattner2003-12-101-8/+27
| | | | | | | Reorder #includes Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll llvm-svn: 10376
* Finegrainify namespacificationChris Lattner2003-12-101-22/+21
| | | | | | Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll llvm-svn: 10373
* Simplify codeChris Lattner2003-12-101-6/+1
| | | | llvm-svn: 10371
* Avoid performing two identical lookups when one will sufficeChris Lattner2003-12-101-3/+1
| | | | llvm-svn: 10370
* Make LICM itself a bit more efficient, and make the generated code more ↵Chris Lattner2003-12-101-21/+26
| | | | | | efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop llvm-svn: 10369
* Implement instruction sinking out of loops. This still can do a little bitChris Lattner2003-12-101-61/+246
| | | | | | | better job, but this is the majority of the work. This implements LICM/sink*.ll llvm-svn: 10358
* Do not insert one entry PHI nodes in split exit blocks!Chris Lattner2003-12-091-13/+23
| | | | llvm-svn: 10348
* Refactor code a little bit, eliminating the gratuitous InstVisitor, whichChris Lattner2003-12-091-41/+43
| | | | | | | should make subsequent changes simpler. This also allows us to hoist vaarg and vanext instructions llvm-svn: 10342
* Fine grainify namespacificationChris Lattner2003-12-091-36/+48
| | | | | | | Code cleanups Make LICM::SafeToHoist marginally more efficient llvm-svn: 10341
* 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
* * Finegrainify namespacificationChris Lattner2003-12-071-4/+17
| | | | | | * Transform: free <ty>* (cast <ty2>* X to <ty>*) into free <ty2>* X llvm-svn: 10303
* Finegrainify namespacificationChris Lattner2003-12-021-6/+3
| | | | | | Fix regressions ScalarRepl/basictest.ll & arraytest.ll llvm-svn: 10287
* Do not use index type to determine what it is indexing into!Chris Lattner2003-11-251-26/+26
| | | | llvm-svn: 10226
* Do not crash when deleing a region with a dead invoke instructionChris Lattner2003-11-221-0/+4
| | | | llvm-svn: 10161
* Finegrainify namespacificationChris Lattner2003-11-221-14/+16
| | | | | | The module stripping pass should not strip symbols on external globals llvm-svn: 10157
* Minor cleanups and simplificationsChris Lattner2003-11-214-7/+7
| | | | llvm-svn: 10127
* Start using the nicer terminator auto-insertion APIChris Lattner2003-11-204-19/+15
| | | | llvm-svn: 10111
* Fix PR116Chris Lattner2003-11-161-0/+12
| | | | llvm-svn: 10032
* Implement feature: InstCombine/2003-11-13-ConstExprCastCall.llChris Lattner2003-11-131-1/+2
| | | | llvm-svn: 9981
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-1123-12/+103
| | | | llvm-svn: 9903
* Adjust to new critical edge interfaceChris Lattner2003-11-101-6/+4
| | | | llvm-svn: 9853
* Declare FunctionPasses as such so that they can be used in FunctionPassManager.Misha Brukman2003-11-073-3/+3
| | | | llvm-svn: 9768
* Fix flawed logic that was breaking several SPEC benchmarks, including gzip ↵Chris Lattner2003-11-051-3/+3
| | | | | | and crafty. llvm-svn: 9731
* Fix bug with previous implementation:Chris Lattner2003-11-051-4/+11
| | | | | | | | - // ~(c-X) == X-(c-1) == X+(-c+1) + // ~(c-X) == X-c-1 == X+(-c-1) Implement: C - ~X == X + (1+C) llvm-svn: 9715
* Minor cleanup, plus implement InstCombine/xor.ll:test17Chris Lattner2003-11-041-3/+17
| | | | llvm-svn: 9711
* Implement InstCombine/xor.ll:test(15|16)Chris Lattner2003-11-041-1/+8
| | | | llvm-svn: 9708
OpenPOWER on IntegriCloud