summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve compatibility with programs that already have a prototype for 'write',Chris Lattner2004-02-081-12/+43
| | | | | | even if it is wierd in some way. llvm-svn: 11207
* rename the "exceptional" destination of an invoke instruction to the ↵Chris Lattner2004-02-087-10/+10
| | | | | | 'unwind' dest llvm-svn: 11202
* Fix PR225: [pruneeh] -pruneeh pass removes invoke instructions it shouldn'tChris Lattner2004-02-081-10/+32
| | | | llvm-svn: 11200
* splitBasicBlock "does the right thing" now, no reason to reposition it.Chris Lattner2004-02-081-3/+0
| | | | llvm-svn: 11199
* Implement proper invoke/unwind lowering.Chris Lattner2004-02-081-21/+262
| | | | | | This fixed PR16 "[lowerinvoke] The -lowerinvoke pass does not insert calls to setjmp/longjmp" llvm-svn: 11195
* Add a call to 'write' right before the call to abort() in the unwind path.Chris Lattner2004-02-081-3/+27
| | | | | | | This causes the JIT, or LLC'd program to print out a nice message, explaining WHY the program aborted. llvm-svn: 11184
* Fix another dominator update bug. These bugs keep getting exposed because GCSEChris Lattner2004-02-051-1/+1
| | | | | | keeps finding more code motion opportunities now that the dominators are correct! llvm-svn: 11142
* Fix bug updating dominatorsChris Lattner2004-02-051-2/+2
| | | | llvm-svn: 11140
* Add debug outputChris Lattner2004-02-051-0/+4
| | | | llvm-svn: 11139
* Fix PR223: Loopsimplify incorrectly updates dominator informationChris Lattner2004-02-051-33/+105
| | | | | | | | The problem is that the dominator update code didn't "realize" that it's possible for the newly inserted basic block to dominate anything. Because it IS possible, stuff was getting updated wrong. llvm-svn: 11137
* Minor speedup, don't query ValueMap each time through the loopChris Lattner2004-02-041-6/+3
| | | | llvm-svn: 11123
* Two changes:Chris Lattner2004-02-041-5/+12
| | | | | | | | | | | | | 1. Don't scan to the end of alloca instructions in the caller function to insert inlined allocas, just insert at the top. This saves a lot of time inlining into functions with a lot of allocas. 2. Use splice to move the alloca instructions over, instead of remove/insert. This allows us to transfer a block at a time, and eliminates a bunch of silly symbol table manipulations. This speeds up the inliner on the testcase in PR209 from 1.73s -> 1.04s (67%) llvm-svn: 11118
* Optimize the case where we are inlining a function that contains only one ↵Chris Lattner2004-02-041-37/+67
| | | | | | | | | | | basic block, and that basic block ends with a return instruction. In this case, we can just splice the cloned "body" of the function directly into the source basic block, avoiding a lot of rearrangement and splitBasicBlock's linear scan over the split block. This speeds up the inliner on the testcase in PR209 from 2.3s to 1.7s, a 35% reduction. llvm-svn: 11116
* Adjust to the new BasicBlock ctor, which requires a function parameterChris Lattner2004-02-042-2/+2
| | | | llvm-svn: 11114
* Remove unneeded code now that splitBasicBlock does the "right thing"Chris Lattner2004-02-041-5/+0
| | | | llvm-svn: 11111
* More refactoring. Move alloca instructions and handle invoke instructionsChris Lattner2004-02-041-129/+132
| | | | | | | before we delete the original call site, allowing slight simplifications of code, but nothing exciting. llvm-svn: 11109
* Move the cloning of the function body much earlier in the inlinefunctionChris Lattner2004-02-041-52/+54
| | | | | | | | | | process. The only optimization we did so far is to avoid creating a PHI node, then immediately destroying it in the common case where the callee has one return statement. Instead, we just don't create the return value. This has no noticable performance impact, but paves the way for future improvements. llvm-svn: 11108
* Give CloneBasicBlock an optional function argument to specify which functionChris Lattner2004-02-042-13/+10
| | | | | | | | to add the cloned block to. This allows the block to be added to the function immediately, and all of the instructions to be immediately added to the function symbol table, which speeds up the inliner from 3.7 -> 3.38s on the PR209. llvm-svn: 11107
* Bunch up all locally used allocas by the block they are allocated in, andChris Lattner2004-02-031-13/+74
| | | | | | | process them all as a group. This speeds up SRoA/mem2reg from 28.46s to 0.62s on the testcase from PR209. llvm-svn: 11100
* Handle extremely trivial cases extremely efficiently. This speeds upChris Lattner2004-02-031-17/+30
| | | | | | SRoA/mem2reg from 41.2s to 27.5s on the testcase in PR209. llvm-svn: 11099
* Disable (x - (y - z)) => (x + (z - y)) optimization for floating point.Chris Lattner2004-02-021-1/+2
| | | | llvm-svn: 11083
* Update commentChris Lattner2004-02-021-1/+1
| | | | llvm-svn: 11082
* Make deadarghaX0r warning louder.Brian Gaeke2004-02-021-1/+1
| | | | | | (I just love typing haX0r. haX0r haX0r haX0r.) llvm-svn: 11079
* Disable tail duplication in any "hard" cases, where it might break SSA form.Chris Lattner2004-02-011-1/+27
| | | | llvm-svn: 11052
* Fix the count of the number of instructions removedChris Lattner2004-02-011-0/+1
| | | | llvm-svn: 11049
* Hyphenate `target-dependent'Misha Brukman2004-01-281-1/+1
| | | | llvm-svn: 11003
* Fix InstCombine/2004-01-13-InstCombineInvokePHI.ll, which also fixes lotsChris Lattner2004-01-141-4/+20
| | | | | | of C++ programs in Shootout-C++, including lists1 and moments, etc llvm-svn: 10845
* Clean up #includesChris Lattner2004-01-121-3/+1
| | | | llvm-svn: 10799
* Fix bug in previous checkinChris Lattner2004-01-121-1/+3
| | | | llvm-svn: 10798
* Eliminate use of ConstantHandling and ConstantExpr::getShift interfacesChris Lattner2004-01-121-39/+58
| | | | llvm-svn: 10796
* Add header file I accidentally removed in teh shuffleChris Lattner2004-01-121-0/+1
| | | | llvm-svn: 10795
* Remove use of the ConstantHandling interfacesChris Lattner2004-01-121-15/+6
| | | | llvm-svn: 10793
* Remove use of ConstantExpr::getShiftChris Lattner2004-01-123-16/+1
| | | | llvm-svn: 10792
* Don't use ConstantExpr::getShift anymoreChris Lattner2004-01-121-23/+6
| | | | llvm-svn: 10791
* Remove use of ConstantHandlingChris Lattner2004-01-121-1/+1
| | | | llvm-svn: 10789
* Remove unneeded #includeChris Lattner2004-01-121-1/+0
| | | | llvm-svn: 10788
* Move llvm::ConstantFoldInstruction from VMCore to here, next to ↵Chris Lattner2004-01-121-0/+58
| | | | | | ConstantFoldTerminator llvm-svn: 10785
* Remove uses of ConstantHandling itfChris Lattner2004-01-122-9/+5
| | | | llvm-svn: 10783
* Use constantexprs for casts. Eliminate use of the ConstantHandling interfacesChris Lattner2004-01-121-11/+5
| | | | llvm-svn: 10779
* Fix fairly severe bug in my last checking where we treated all unfoldableChris Lattner2004-01-121-3/+12
| | | | | | | | constants as being "true" when evaluating branches. This was introduced because we now create constantexprs for the constants instead of failing the fold. llvm-svn: 10778
* * Implement minor performance optimization for the getelementptr caseChris Lattner2004-01-121-3/+69
| | | | | | | | * Implement SCCP of load instructions, implementing Transforms/SCCP/loadtest.ll This allows us to fold expressions like "foo"[2], even if the pointer is only a conditional constant. llvm-svn: 10767
* Do not hack on volatile loads. I'm not sure what the point of a volatile loadChris Lattner2004-01-121-0/+2
| | | | | | from constant memory is, but lets not take chances. llvm-svn: 10765
* Implement SCCP/phitest.llChris Lattner2004-01-121-14/+115
| | | | llvm-svn: 10763
* Implement Transforms/ScalarRepl/phinodepromote.ll, which is an importantChris Lattner2004-01-121-17/+86
| | | | | | case that the C/C++ front-end generates. llvm-svn: 10761
* Update obsolete commentsChris Lattner2004-01-101-6/+9
| | | | | | | | Fix iterator invalidation problems which was causing -mstrip to miss some entries, and read free'd memory. This shrinks the symbol table of 254.gap from 333 to 284 bytes! :) llvm-svn: 10751
* Finegrainify namespacificationChris Lattner2004-01-0915-95/+53
| | | | llvm-svn: 10727
* Remove dependence on structure index type. s/MT/FTChris Lattner2004-01-091-6/+6
| | | | llvm-svn: 10726
* Finegrainify namespacificationChris Lattner2004-01-0914-80/+37
| | | | llvm-svn: 10725
* Finegrainify namespacificationChris Lattner2004-01-093-13/+23
| | | | | | add flags for PR82 llvm-svn: 10724
* Inching towards fixing PR82Chris Lattner2004-01-091-1/+4
| | | | llvm-svn: 10722
OpenPOWER on IntegriCloud