summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* disable this transformation in the one obscure case that really pessimizesChris Lattner2005-03-291-0/+3
| | | | | | pointer analysis. llvm-svn: 20916
* Rename createPromoteMemoryToRegister() toAlkis Evlogimenos2005-03-281-2/+1
| | | | | | | createPromoteMemoryToRegisterPass() to be consistent with other pass creation functions. llvm-svn: 20885
* Enhance loopsimplify to preserve alias analysis instead of clobbering it.Chris Lattner2005-03-251-2/+15
| | | | | | This prevents crashes on some programs when using -ds-aa -licm. llvm-svn: 20831
* Fix a bug where LICM was not updating AA information properly when sinkingChris Lattner2005-03-251-1/+2
| | | | | | a pointer value out of a loop causing it to be duplicated. llvm-svn: 20828
* enable -debug-only=licmChris Lattner2005-03-231-0/+1
| | | | llvm-svn: 20788
* Fix the missing symbols problem Bill was hitting. Patch contributed byChris Lattner2005-03-172-0/+2
| | | | | | Bill Wendling!! llvm-svn: 20649
* stop using method.Chris Lattner2005-03-151-1/+1
| | | | llvm-svn: 20603
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-1522-62/+62
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* fix a bug where we thought arguments were constants :(Chris Lattner2005-03-061-3/+7
| | | | llvm-svn: 20506
* Fix Regression/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll,Chris Lattner2005-03-061-1/+1
| | | | | | hopefully not breaking too many other things. llvm-svn: 20505
* implement Transforms/LoopStrengthReduce/invariant_value_first_arg.llChris Lattner2005-03-061-1/+1
| | | | llvm-svn: 20501
* minor simplifications of the code.Chris Lattner2005-03-061-9/+8
| | | | llvm-svn: 20497
* trivial simplificationChris Lattner2005-03-061-1/+1
| | | | llvm-svn: 20494
* Fix a bug where we could corrupt a parent loop's header info if we unrolledChris Lattner2005-03-061-6/+17
| | | | | | | a nested loop. This fixes Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll and PR532 llvm-svn: 20493
* Make this MUCH faster by avoiding a linear search in the symbol table code.Chris Lattner2005-03-061-2/+1
| | | | llvm-svn: 20479
* Reformat comments to fix 80 columns.Jeff Cohen2005-03-051-7/+8
| | | | llvm-svn: 20467
* Reuse induction variables created for strength-reduced GEPs by other similar ↵Jeff Cohen2005-03-051-32/+61
| | | | | | GEPs. llvm-svn: 20466
* second argument to Value::setName is now gone.Chris Lattner2005-03-052-4/+4
| | | | llvm-svn: 20463
* Do not compute 1ULL << 64, which is undefined. This fixes Ptrdist/ks on theChris Lattner2005-03-041-1/+2
| | | | | | sparc, and testcase Regression/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll llvm-svn: 20445
* Add support for not strength reducing GEPs where the element size is a smallJeff Cohen2005-03-041-2/+25
| | | | | | power of two. This emphatically includes the zeroeth power of two. llvm-svn: 20429
* Add an optional argument to lower to a specific constant value instead ofChris Lattner2005-03-031-6/+14
| | | | | | to a "sizeof" expression. llvm-svn: 20414
* Fixed the following LSR bugs:Jeff Cohen2005-03-011-23/+19
| | | | | | | | | | | | | | | * Loop invariant code does not dominate the loop header, but rather the end of the loop preheader. * The base for a reduced GEP isn't a constant unless all of its operands (preceding the induction variable) are constant. * Allow induction variable elimination for the simple case after all. Also made changes recommended by Chris for properly deleting instructions. llvm-svn: 20383
* Fix crash in LSR due to attempt to remove original induction variable. However,Jeff Cohen2005-02-281-3/+14
| | | | | | | for reasons explained in the comments, I also deactivated this code as it needs more thought. llvm-svn: 20367
* PHI nodes were incorrectly placed when more than one GEP is reduced in a loop.Jeff Cohen2005-02-271-7/+6
| | | | llvm-svn: 20360
* First pass at improved Loop Strength Reduction. Still not yet ready for ↵Jeff Cohen2005-02-271-35/+39
| | | | | | prime time. llvm-svn: 20358
* Teach globalopt how memset/cpy/move affect memory, to allow better optimization.Chris Lattner2005-02-271-25/+40
| | | | llvm-svn: 20352
* Fix spelling, patch contributed by Gabor Greif!Chris Lattner2005-02-272-2/+2
| | | | llvm-svn: 20343
* remove extraneous castChris Lattner2005-02-261-2/+1
| | | | llvm-svn: 20334
* Implement Transforms/SimplifyCFG/switch_thread.llChris Lattner2005-02-241-4/+190
| | | | | | | | This does a simple form of "jump threading", which eliminates CFG edges that are provably dead. This triggers 90 times in the external tests, and eliminating CFG edges is always always a good thing! :) llvm-svn: 20300
* make this more efficient. Scan up to 16 nodes, not the whole list.Chris Lattner2005-02-231-1/+1
| | | | llvm-svn: 20289
* Remove use of bind_objChris Lattner2005-02-221-2/+3
| | | | llvm-svn: 20276
* Do not mark obviously unreachable blocks live when processing PHI nodes,Chris Lattner2005-02-171-40/+61
| | | | | | | | | | | | and handle incomplete control dependences correctly. This fixes: Regression/Transforms/ADCE/dead-phi-edge.ll -> a missed optimization Regression/Transforms/ADCE/dead-phi-edge.ll -> a compiler crash distilled from QT4 llvm-svn: 20227
* Fix the second bug attached to PR504.Chris Lattner2005-02-141-1/+1
| | | | llvm-svn: 20181
* Fix for testcase Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.llChris Lattner2005-02-121-0/+2
| | | | | | and PR504. llvm-svn: 20129
* Localize globals if they are only used in main(). This replaces theAlkis Evlogimenos2005-02-101-0/+40
| | | | | | | global with an alloca, which eventually gets promoted into a register. This enables a lot of other optimizations later on. llvm-svn: 20109
* Fix crash on MallocInsts of unsized types.Alkis Evlogimenos2005-02-021-1/+2
| | | | llvm-svn: 19988
* API change.Chris Lattner2005-02-011-1/+1
| | | | llvm-svn: 19959
* Adjust to changes in APIsChris Lattner2005-02-012-16/+10
| | | | llvm-svn: 19958
* Hacks to make this ugly ugly code work with the new use lists.Chris Lattner2005-02-011-17/+12
| | | | llvm-svn: 19957
* Implement InstCombine/cast.ll:test25, a case that occurs many timesChris Lattner2005-01-311-0/+56
| | | | | | in spec llvm-svn: 19953
* Implement the trivial cases in InstCombine/store.llChris Lattner2005-01-311-1/+38
| | | | llvm-svn: 19950
* Implement Transforms/InstCombine/cast-load-gep.ll, which allows us to ↵Chris Lattner2005-01-311-15/+29
| | | | | | | | devirtualize 11 indirect calls in perlbmk. llvm-svn: 19947
* Adjust to changes in instruction interfaces.Chris Lattner2005-01-293-10/+11
| | | | llvm-svn: 19900
* Switchinst takes a hint for the number of cases it will have.Chris Lattner2005-01-291-1/+1
| | | | llvm-svn: 19899
* switchinst ctor now takes a hint for the number of cases that it will have.Chris Lattner2005-01-292-3/+3
| | | | llvm-svn: 19898
* Adjust Valuehandle to hold its operand directly in it.Chris Lattner2005-01-292-7/+7
| | | | llvm-svn: 19897
* * add some DEBUG statementsChris Lattner2005-01-281-3/+10
| | | | | | | | | | | | | | | | * Properly compile this: struct a {}; int test() { struct a b[2]; if (&b[0] != &b[1]) abort (); return 0; } to 'return 0', not abort(). llvm-svn: 19875
* Add a dependency to the trace library so that it gets pulled inAlkis Evlogimenos2005-01-251-1/+3
| | | | | | automatically. llvm-svn: 19828
* Get rid of a several dozen more and instructions in specint.Chris Lattner2005-01-231-5/+36
| | | | llvm-svn: 19786
* Handle comparisons of gep instructions that have different typed indicesChris Lattner2005-01-211-5/+9
| | | | | | as long as they are the same size. llvm-svn: 19734
OpenPOWER on IntegriCloud