Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Improve compatibility with programs that already have a prototype for 'write', | Chris Lattner | 2004-02-08 | 1 | -12/+43 | |
| | | | | | | even if it is wierd in some way. llvm-svn: 11207 | |||||
* | rename the "exceptional" destination of an invoke instruction to the ↵ | Chris Lattner | 2004-02-08 | 7 | -10/+10 | |
| | | | | | | 'unwind' dest llvm-svn: 11202 | |||||
* | Fix PR225: [pruneeh] -pruneeh pass removes invoke instructions it shouldn't | Chris Lattner | 2004-02-08 | 1 | -10/+32 | |
| | | | | llvm-svn: 11200 | |||||
* | splitBasicBlock "does the right thing" now, no reason to reposition it. | Chris Lattner | 2004-02-08 | 1 | -3/+0 | |
| | | | | llvm-svn: 11199 | |||||
* | Implement proper invoke/unwind lowering. | Chris Lattner | 2004-02-08 | 1 | -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 Lattner | 2004-02-08 | 1 | -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 GCSE | Chris Lattner | 2004-02-05 | 1 | -1/+1 | |
| | | | | | | keeps finding more code motion opportunities now that the dominators are correct! llvm-svn: 11142 | |||||
* | Fix bug updating dominators | Chris Lattner | 2004-02-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 11140 | |||||
* | Add debug output | Chris Lattner | 2004-02-05 | 1 | -0/+4 | |
| | | | | llvm-svn: 11139 | |||||
* | Fix PR223: Loopsimplify incorrectly updates dominator information | Chris Lattner | 2004-02-05 | 1 | -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 loop | Chris Lattner | 2004-02-04 | 1 | -6/+3 | |
| | | | | llvm-svn: 11123 | |||||
* | Two changes: | Chris Lattner | 2004-02-04 | 1 | -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 Lattner | 2004-02-04 | 1 | -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 parameter | Chris Lattner | 2004-02-04 | 2 | -2/+2 | |
| | | | | llvm-svn: 11114 | |||||
* | Remove unneeded code now that splitBasicBlock does the "right thing" | Chris Lattner | 2004-02-04 | 1 | -5/+0 | |
| | | | | llvm-svn: 11111 | |||||
* | More refactoring. Move alloca instructions and handle invoke instructions | Chris Lattner | 2004-02-04 | 1 | -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 inlinefunction | Chris Lattner | 2004-02-04 | 1 | -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 function | Chris Lattner | 2004-02-04 | 2 | -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, and | Chris Lattner | 2004-02-03 | 1 | -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 up | Chris Lattner | 2004-02-03 | 1 | -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 Lattner | 2004-02-02 | 1 | -1/+2 | |
| | | | | llvm-svn: 11083 | |||||
* | Update comment | Chris Lattner | 2004-02-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 11082 | |||||
* | Make deadarghaX0r warning louder. | Brian Gaeke | 2004-02-02 | 1 | -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 Lattner | 2004-02-01 | 1 | -1/+27 | |
| | | | | llvm-svn: 11052 | |||||
* | Fix the count of the number of instructions removed | Chris Lattner | 2004-02-01 | 1 | -0/+1 | |
| | | | | llvm-svn: 11049 | |||||
* | Hyphenate `target-dependent' | Misha Brukman | 2004-01-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 11003 | |||||
* | Fix InstCombine/2004-01-13-InstCombineInvokePHI.ll, which also fixes lots | Chris Lattner | 2004-01-14 | 1 | -4/+20 | |
| | | | | | | of C++ programs in Shootout-C++, including lists1 and moments, etc llvm-svn: 10845 | |||||
* | Clean up #includes | Chris Lattner | 2004-01-12 | 1 | -3/+1 | |
| | | | | llvm-svn: 10799 | |||||
* | Fix bug in previous checkin | Chris Lattner | 2004-01-12 | 1 | -1/+3 | |
| | | | | llvm-svn: 10798 | |||||
* | Eliminate use of ConstantHandling and ConstantExpr::getShift interfaces | Chris Lattner | 2004-01-12 | 1 | -39/+58 | |
| | | | | llvm-svn: 10796 | |||||
* | Add header file I accidentally removed in teh shuffle | Chris Lattner | 2004-01-12 | 1 | -0/+1 | |
| | | | | llvm-svn: 10795 | |||||
* | Remove use of the ConstantHandling interfaces | Chris Lattner | 2004-01-12 | 1 | -15/+6 | |
| | | | | llvm-svn: 10793 | |||||
* | Remove use of ConstantExpr::getShift | Chris Lattner | 2004-01-12 | 3 | -16/+1 | |
| | | | | llvm-svn: 10792 | |||||
* | Don't use ConstantExpr::getShift anymore | Chris Lattner | 2004-01-12 | 1 | -23/+6 | |
| | | | | llvm-svn: 10791 | |||||
* | Remove use of ConstantHandling | Chris Lattner | 2004-01-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 10789 | |||||
* | Remove unneeded #include | Chris Lattner | 2004-01-12 | 1 | -1/+0 | |
| | | | | llvm-svn: 10788 | |||||
* | Move llvm::ConstantFoldInstruction from VMCore to here, next to ↵ | Chris Lattner | 2004-01-12 | 1 | -0/+58 | |
| | | | | | | ConstantFoldTerminator llvm-svn: 10785 | |||||
* | Remove uses of ConstantHandling itf | Chris Lattner | 2004-01-12 | 2 | -9/+5 | |
| | | | | llvm-svn: 10783 | |||||
* | Use constantexprs for casts. Eliminate use of the ConstantHandling interfaces | Chris Lattner | 2004-01-12 | 1 | -11/+5 | |
| | | | | llvm-svn: 10779 | |||||
* | Fix fairly severe bug in my last checking where we treated all unfoldable | Chris Lattner | 2004-01-12 | 1 | -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 case | Chris Lattner | 2004-01-12 | 1 | -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 load | Chris Lattner | 2004-01-12 | 1 | -0/+2 | |
| | | | | | | from constant memory is, but lets not take chances. llvm-svn: 10765 | |||||
* | Implement SCCP/phitest.ll | Chris Lattner | 2004-01-12 | 1 | -14/+115 | |
| | | | | llvm-svn: 10763 | |||||
* | Implement Transforms/ScalarRepl/phinodepromote.ll, which is an important | Chris Lattner | 2004-01-12 | 1 | -17/+86 | |
| | | | | | | case that the C/C++ front-end generates. llvm-svn: 10761 | |||||
* | Update obsolete comments | Chris Lattner | 2004-01-10 | 1 | -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 namespacification | Chris Lattner | 2004-01-09 | 15 | -95/+53 | |
| | | | | llvm-svn: 10727 | |||||
* | Remove dependence on structure index type. s/MT/FT | Chris Lattner | 2004-01-09 | 1 | -6/+6 | |
| | | | | llvm-svn: 10726 | |||||
* | Finegrainify namespacification | Chris Lattner | 2004-01-09 | 14 | -80/+37 | |
| | | | | llvm-svn: 10725 | |||||
* | Finegrainify namespacification | Chris Lattner | 2004-01-09 | 3 | -13/+23 | |
| | | | | | | add flags for PR82 llvm-svn: 10724 | |||||
* | Inching towards fixing PR82 | Chris Lattner | 2004-01-09 | 1 | -1/+4 | |
| | | | | llvm-svn: 10722 |