summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* - 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-221-6/+0
| | | | llvm-svn: 3488
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-224-55/+23
| | | | 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
* *** empty log message ***Chris Lattner2002-08-223-17/+4
| | | | llvm-svn: 3483
* 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
* Do not generate load/store instructions with indexing.Chris Lattner2002-08-221-18/+36
| | | | llvm-svn: 3461
* - Split Dominators.h into Dominators.h & PostDominators.hChris Lattner2002-08-211-1/+1
| | | | llvm-svn: 3432
* Do not generate loads/stores with indexingChris Lattner2002-08-211-28/+37
| | | | llvm-svn: 3422
* Remove extraneous #includesChris Lattner2002-08-211-1/+0
| | | | llvm-svn: 3421
* Do not create load/stores with indexesChris Lattner2002-08-211-14/+16
| | | | llvm-svn: 3420
* Remove an optimization that isn't.Chris Lattner2002-08-211-5/+7
| | | | llvm-svn: 3419
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-211-1/+0
| | | | llvm-svn: 3417
* fixed bug: test/Regression/Linker/2002-08-20-ConstantExpr.llChris Lattner2002-08-201-11/+11
| | | | llvm-svn: 3412
* - 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
* - Made GlobalDCE worklist driven, making it more successful. Now can handleChris Lattner2002-08-181-17/+176
| | | | | | cases like: test/Regression/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll llvm-svn: 3381
* 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 creating 'load X, 0' instead of just 'load X'Chris Lattner2002-08-141-0/+3
| | | | | | | | This _trivial_ change causes GCSE and LICM to be much more effective at hoisting loads. Before it would not be able to eliminate 'load X' if there was just a dominating 'load X, 0' because the expressions were not identical. llvm-svn: 3337
* Avoid inserting an entry block unless we need itChris Lattner2002-08-141-5/+9
| | | | llvm-svn: 3336
* Remove support for Not ConstantExpr. This simplifies the unary case to onlyChris Lattner2002-08-141-3/+3
| | | | | | have to support the cast instruction, so the function is renamed to getCast. llvm-svn: 3328
* 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
* Remove support for NOT instructionChris Lattner2002-08-141-6/+0
| | | | llvm-svn: 3313
* - 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
* Initial checkin of the "Hello World" Pass.Chris Lattner2002-08-082-0/+40
| | | | llvm-svn: 3266
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-0810-13/+13
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3265
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-081-1/+1
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3264
* 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
* Remove unneccesary #inlcudeChris Lattner2002-08-011-1/+0
| | | | llvm-svn: 3200
* Implement the other half of a feature advertised by OperandConvertableToType.Chris Lattner2002-07-311-6/+39
| | | | | | This fixes bug: test/Regression/Transforms/LevelRaise/2002-07-31-AssertionFailure.ll llvm-svn: 3193
* * Indent class into anonymous namespace, filling up the diff with garbageChris Lattner2002-07-301-30/+43
| | | | | | | | | * Internalize global variables with initializers * Add new stat to track global variable internalization * Only count functions that were not internal before in internalized function count llvm-svn: 3163
* Cleanup ConstantExpr handling:Chris Lattner2002-07-301-8/+2
| | | | | | | | | | | | | | * Correctly delete TypeHandles in AsmParser. In addition to not leaking memory, this prevents a bug that could have occurred when a type got resolved that the constexpr was using * Check for errors in the AsmParser instead of hitting assertion failures deep in the code * Simplify the interface to the ConstantExpr class, removing unneccesary parameters to the ::get* methods. * Rename the 'getelementptr' version of ConstantExpr::get to ConstantExpr::getGetElementPtr llvm-svn: 3160
* Remove FIXME's that aren't really needed after all.Chris Lattner2002-07-301-9/+0
| | | | llvm-svn: 3158
* Fix bug with last patch which would occur when a call returned void and weChris Lattner2002-07-301-1/+2
| | | | | | attempted to assign it a name. llvm-svn: 3142
* * Make sure the resolved function call instructions get the name from theChris Lattner2002-07-301-7/+15
| | | | | | | | old call instruction * Implement conversion of return values for calls. This fixes bug: test/Regression/Transforms/FunctionResolve/retmismatch3.ll llvm-svn: 3140
OpenPOWER on IntegriCloud