summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix spelling errorChris Lattner2002-11-081-1/+1
| | | | llvm-svn: 4645
* Instcombine this away:Chris Lattner2002-11-041-1/+7
| | | | | | | %A = getelementptr [4 x int]* %M, long 0, long 0 %B = getelementptr int* %A, long 2 llvm-svn: 4536
* Add a transformation to turn:Chris Lattner2002-11-041-0/+36
| | | | | | | | malloc Ty, C int malloc [C x Ty], 1 llvm-svn: 4534
* Make sure to _delete_ memory allocated by worklistsChris Lattner2002-11-041-0/+2
| | | | llvm-svn: 4523
* Fixes to the reassociate pass to make it respect dominance propertiesChris Lattner2002-10-311-57/+54
| | | | | | | Huge thanks go to Casey Carter for writing this fix, reassociate is now reoperational! llvm-svn: 4471
* BreakCriticalEdges should update dominance frontier information as well asChris Lattner2002-10-311-2/+14
| | | | | | other dominance stuff. Patch contributed by Casey Carter llvm-svn: 4457
* Fix spelling of `propagate'.Misha Brukman2002-10-293-48/+48
| | | | llvm-svn: 4423
* - Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG toChris Lattner2002-10-219-10/+10
| | | | | | setPreservesCFG to be less confusing. llvm-svn: 4255
* - Fix bug: cee/2002-10-07-NoImmediateDominator.llChris Lattner2002-10-081-1/+2
| | | | llvm-svn: 4081
* - Checkin LARGE number of Changes to CEE pass that will make it much moreChris Lattner2002-10-081-53/+394
| | | | | | | | | | | powerful, but that are largely disabled. The basic idea here is that it is trying to forward branches across basic blocks that have PHI nodes in it, which are crucial to be able to handle cases like whet.ll. Unfortunately we are not updating SSA correctly, causing sim.c to die, and I don't have time to fix the regression now, so I must disable the functionality. llvm-svn: 4077
* Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges passChris Lattner2002-10-081-9/+10
| | | | llvm-svn: 4075
* It is illegal for PHI nodes to have zero values, delete the code to handle themChris Lattner2002-10-081-2/+0
| | | | llvm-svn: 4071
* Fold ashr -1, X into -1Chris Lattner2002-10-081-0/+6
| | | | llvm-svn: 4070
* Updates to work with recent Statistic's changes:Chris Lattner2002-10-0116-58/+54
| | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. llvm-svn: 4002
* Fix bug in LICM that caused the previous big win. :(Chris Lattner2002-09-291-13/+16
| | | | llvm-svn: 3980
* Hoist the contents of Loops in depth first order in the dominator tree,Chris Lattner2002-09-291-6/+36
| | | | | | | | | rather than in random order. This causes LICM to be DRAMATICALLY more effective. For example, on bzip2.c, it is able to hoist 302 loads and 2380 total instructions, as opposed to 44/338 before. This obviously makes other transformations much more powerful as well! llvm-svn: 3978
* Fix major bugs in dominator set & tree information updatingChris Lattner2002-09-291-6/+9
| | | | llvm-svn: 3975
* - Further cleanups of LICM pass, remove extra work from previous implementationChris Lattner2002-09-261-59/+25
| | | | | | - Do not clone instructions then insert clone outside of loop. Just move them. llvm-svn: 3951
* Improve comments, doxygenize moreChris Lattner2002-09-261-20/+36
| | | | llvm-svn: 3950
* Clean up LICM significantly now that it is guaranteed to have loop preheadersChris Lattner2002-09-261-99/+14
| | | | llvm-svn: 3947
* Change pass name to something saneChris Lattner2002-09-261-2/+1
| | | | llvm-svn: 3946
* Loop invariant code motion now depends on the LoopPreheader pass. Dead codeChris Lattner2002-09-261-5/+10
| | | | | | has not yet been removed. llvm-svn: 3945
* - Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.Chris Lattner2002-09-261-29/+30
| | | | | | - break-crit-edges pass does not invalidate loop-preheader pass. llvm-svn: 3944
* Checkin new loop-preheader insertion pass.Chris Lattner2002-09-261-0/+189
| | | | llvm-svn: 3942
* Change LowerAllocations pass to 'require' TargetData instead of it beingChris Lattner2002-09-251-28/+28
| | | | | | passed in. llvm-svn: 3929
* Eliminate extraneous #includeChris Lattner2002-09-241-1/+0
| | | | llvm-svn: 3916
* - Do not expose Critical Edge breaking mechanics outside the BCE pass, thusChris Lattner2002-09-241-9/+94
| | | | | | removing it from Transforms/Local.h and from Transforms/Utils/* llvm-svn: 3910
* Correlated Exprs pass now requires BCE pass instead of doing it manuallyChris Lattner2002-09-241-20/+1
| | | | llvm-svn: 3908
* - Expose passinfo from BreakCriticalEdges pass so that it may be "Required"Chris Lattner2002-09-241-14/+17
| | | | | | by other passes. Make BCE pass be in anonymous namespace now. llvm-svn: 3907
* Add new BreakCriticalEdges passChris Lattner2002-09-241-0/+52
| | | | llvm-svn: 3903
* Optimize away cases like:Chris Lattner2002-09-231-0/+6
| | | | | | | | %cast109 = cast uint %cast212 to short ; <short> [#uses=1] %cast214 = cast short %cast109 to uint ; <uint> [#uses=1] %cast215 = cast uint %cast214 to short ; <short> [#uses=1] llvm-svn: 3897
* * Fix bug: CorrelatedExprs/2002-09-23-PHIUpdateBug.llChris Lattner2002-09-231-5/+20
| | | | | | * Make sure "Changed" is updated correctly llvm-svn: 3891
* Fix bug: test/Regression/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.llChris Lattner2002-09-171-1/+2
| | | | | | Thanks to Casey for finding it! llvm-svn: 3783
* Extract most of the transformation into an externally accessibleVikram S. Adve2002-09-161-27/+31
| | | | | | | function -- DecomposeArrayRef(GetElementPtrInst* GEP) -- that can be invoked on a single instruction at a time. llvm-svn: 3755
* Function.h is unnecessary when Module.h is included.Misha Brukman2002-09-141-1/+0
| | | | llvm-svn: 3716
* - Change getelementptr instruction to use long indexes instead of uintChris Lattner2002-09-112-4/+4
| | | | | | indexes for sequential types. llvm-svn: 3682
* Fix the last of the silly bugs I just introduced. :(Chris Lattner2002-09-101-3/+3
| | | | llvm-svn: 3674
* Add cannonicalization of shl X, 1 -> add X, XChris Lattner2002-09-101-4/+12
| | | | llvm-svn: 3671
* Clean up code due to auto-insert constructorsChris Lattner2002-09-104-32/+15
| | | | llvm-svn: 3665
* Simplify code (somtimes dramatically), by using the new "auto-insert" featureChris Lattner2002-09-103-73/+38
| | | | | | of instruction constructors. llvm-svn: 3656
* * Clean up code a little bitChris Lattner2002-09-101-19/+27
| | | | | | * Fix bug: test/Regression/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll llvm-svn: 3644
* Hack unneccesary now that shifts of pointers are no longer legal!Chris Lattner2002-09-101-1/+0
| | | | llvm-svn: 3640
* Fix Bug: test/Regression/Transforms/InstCombine/2002-09-08-PointerShiftBug.llChris Lattner2002-09-081-0/+1
| | | | llvm-svn: 3626
* Minor simplificationChris Lattner2002-09-081-6/+5
| | | | llvm-svn: 3619
* Initial checkin of Correlated Expression Elimination PassChris Lattner2002-09-061-0/+974
| | | | llvm-svn: 3599
* - Renamed Type::isIntegral() to Type::isInteger()Chris Lattner2002-09-031-11/+4
| | | | | | | - Added new method Type::isIntegral() that is the same as isInteger, but also accepts bool. llvm-svn: 3574
* Add constant prop & DIE to InstCombine, so it cleans up after itselfChris Lattner2002-09-021-9/+45
| | | | llvm-svn: 3568
* - Implement SCCP of getelementptr instructionsChris Lattner2002-08-301-5/+31
| | | | | | | - Implement SCCP of globals into ConstantExprs hopefully opening new opportunities for more SCCP. llvm-svn: 3555
* Really minor cleanupsChris Lattner2002-08-301-9/+4
| | | | llvm-svn: 3549
* - GCSE now no longer counts instructions not removed (due to no commonChris Lattner2002-08-301-257/+108
| | | | | | | | dominator as being removed) - GCSE now uses new Value #'ing interface, instead of dealing with AA itself - GCSE worklist implementation much simpler, class cleaned up. llvm-svn: 3533
OpenPOWER on IntegriCloud