summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar
Commit message (Collapse)AuthorAgeFilesLines
* 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
* - instcombine demorgan's law: and (not A), (not B) == not (or A, B)Chris Lattner2002-08-231-0/+12
| | | | llvm-svn: 3495
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-222-19/+13
| | | | llvm-svn: 3487
* Load & StoreInst no longer derive from MemAccessInst, so we don't haveChris Lattner2002-08-223-22/+1
| | | | | | to handle indexing anymore llvm-svn: 3485
* Add capability of using pointer analysis to LICMChris Lattner2002-08-221-2/+35
| | | | llvm-svn: 3478
* Remove long obsolete commentsChris Lattner2002-08-221-7/+0
| | | | llvm-svn: 3476
* Instcombine PHI's of the form %PN = phi PN, X into X andChris Lattner2002-08-221-4/+13
| | | | | | %PN = phi PN, PN, PN into 0 (because the phi must not be reachable) llvm-svn: 3470
* Convert GCSE pass to use new alias analysis infrastructureChris Lattner2002-08-221-61/+35
| | | | llvm-svn: 3463
* - Split Dominators.h into Dominators.h & PostDominators.hChris Lattner2002-08-211-1/+1
| | | | llvm-svn: 3432
* Remove an optimization that isn't.Chris Lattner2002-08-211-5/+7
| | | | llvm-svn: 3419
* - instcombine (~(a < b)) into (a >= b)Chris Lattner2002-08-201-2/+10
| | | | llvm-svn: 3406
* - implemented instcombine of phi (X, X, X) -> XChris Lattner2002-08-201-1/+12
| | | | llvm-svn: 3397
* Promote getelementptr instructions to constexprs if we can.Chris Lattner2002-08-171-3/+19
| | | | llvm-svn: 3368
* Handle more cases of cast-of-cast in more general forms.Chris Lattner2002-08-151-8/+35
| | | | llvm-svn: 3347
* Implement capability to fold this:Chris Lattner2002-08-141-4/+11
| | | | | | | | | | | uint %test4(int %A, int %B) { %COND = setlt int %A, %B ; <bool> [#uses=1] %result = cast bool %COND to uint ; <uint> [#uses=1] ret uint %result } into a single cast instruction. llvm-svn: 3339
* Avoid inserting an entry block unless we need itChris Lattner2002-08-141-5/+9
| | | | llvm-svn: 3336
* Fix bug introduced in last checkin due to CastInst not being visibleChris Lattner2002-08-142-3/+5
| | | | llvm-svn: 3327
* Remove support for NOT instructionChris Lattner2002-08-142-9/+6
| | | | llvm-svn: 3323
* Remove extra #includesChris Lattner2002-08-141-2/+0
| | | | llvm-svn: 3322
* Remove support for unary operatorsChris Lattner2002-08-141-6/+4
| | | | llvm-svn: 3318
* - Fix InstCombine pass to not generate or process NOT instructionsChris Lattner2002-08-141-15/+15
| | | | | | - Fixed testcases to not use them either. llvm-svn: 3315
* - Rename ConstantGenericIntegral -> ConstantIntegralChris Lattner2002-08-131-3/+3
| | | | llvm-svn: 3300
* * Factor a bunch of code by using ReplaceInstUsesWithChris Lattner2002-08-121-163/+51
| | | | | | * Move isMaxValue, isMinValue, isAllOnesValue to Constants.h llvm-svn: 3290
* New functionality for instcombine:Chris Lattner2002-08-091-28/+213
| | | | | | | | | | | | | | | | | * New ReplaceInstUsesWith function to factor out tons of common code This needs to be used more in the future still, but it's a good start * New InsertNewInstBefore to allow multi-instruction replacements * Change getMaxValue functions to isAllOnesValue function, which doesn't have to CREATE/lookup a new constant. Also the name is accurate * Add new isMaxValue, isMinValue, isMaxValueMinusOne, isMinValuePlusOne functions: This should be moved to Constant* classes eventually * Implement xor X, ALLONES -> not X * Fold ALL setcc's of booleans away * Handle various SetCC's for integers against values at the end of their ranges, possibly off by one. This implements the setcc-strength-reduce.ll testcase. llvm-svn: 3286
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-085-7/+7
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3265
* Remove extraneous #includesChris Lattner2002-08-081-2/+0
| | | | llvm-svn: 3262
* Eliminate cast instructions: use only GEPs in decomposed sequence.Vikram S. Adve2002-08-031-81/+70
| | | | | | | Don't decompose if there are 2 indices with 0 as first index. Compute Changed flag correctly in runOnBasicBlock(). llvm-svn: 3233
* Fix bug: test/Regression/Transforms/InstCombine/2002-08-02-CastTest.llChris Lattner2002-08-021-7/+37
| | | | | | Implement feature: Cast's can now be converted to bitwise AND expressions. llvm-svn: 3225
* * Cleanups of instcombineChris Lattner2002-08-021-80/+48
| | | | | | | | | - Reenable gep (gep x) -> x - Make instcombine do dead instruction elimination where it's really easy. Now visitors don't have to ensure they aren't not processing dead instructions. llvm-svn: 3222
* Fix bug: test/Regression/Transforms/GCSE/2002-05-21-NoSharedDominator.llChris Lattner2002-08-021-0/+29
| | | | llvm-svn: 3215
* * Fix bug: test/Regression/Transforms/ADCE/2002-07-17-AssertionFailure.llChris Lattner2002-07-301-21/+46
| | | | | | | | | | | which was caused by us not running the "drop references of dead instructions" code when there were no basic blocks that were dead. We still don't want to do some of the stuff we do if there are dead basic blocks, but we DO want to drop references of dead instructions, so we factor the common code out to a new method. llvm-svn: 3137
* Add code to ensure that no PHI nodes are left laying around with theirChris Lattner2002-07-291-2/+16
| | | | | | | arguments dropped. This fixes bug: test/Regression/Transforms/ADCE/2002-07-17-PHIAssertion.ll llvm-svn: 3134
* Fix bug: test/Regression/Transforms/ADCE/2002-07-29-Segfault.llChris Lattner2002-07-291-28/+60
| | | | llvm-svn: 3129
* * Standardize how analysis results/passes as printed with the print() virtualChris Lattner2002-07-272-3/+1
| | | | | | | | | | methods * Eliminate AnalysisID: Now it is just a typedef for const PassInfo* * Simplify how AnalysisID's are initialized * Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into the analyses themselves. llvm-svn: 3116
* * Add support for different "PassType's"Chris Lattner2002-07-2614-18/+18
| | | | | | | | | | | | | | | * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses llvm-svn: 3113
* *** empty log message ***Chris Lattner2002-07-261-9/+8
| | | | llvm-svn: 3105
* *** empty log message ***Chris Lattner2002-07-251-1/+1
| | | | llvm-svn: 3075
* Merge ChangeAllocations into scalar.hChris Lattner2002-07-231-1/+1
| | | | llvm-svn: 3038
* *** empty log message ***Chris Lattner2002-07-2313-40/+28
| | | | llvm-svn: 3016
* * Remove getPassName implementationChris Lattner2002-07-231-4/+5
| | | | | | * Register all Passes llvm-svn: 3015
* *** empty log message ***Chris Lattner2002-07-231-1/+1
| | | | llvm-svn: 3002
* Disable folding g-e-p instructions into loads and stores.Chris Lattner2002-07-101-0/+2
| | | | llvm-svn: 2870
* *** empty log message ***Chris Lattner2002-06-301-1/+0
| | | | llvm-svn: 2813
OpenPOWER on IntegriCloud