| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Increase code clarity. | Alkis Evlogimenos | 2004-02-06 | 1 | -127/+100 |
| | | | | | llvm-svn: 11151 | ||||
| * | Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead | Alkis Evlogimenos | 2004-02-06 | 1 | -23/+33 |
| | | | | | | | of the virtual register to certain functions. llvm-svn: 11143 | ||||
| * | 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 | ||||
| * | Change live interval representation. Machine instructions now have two | Alkis Evlogimenos | 2004-02-05 | 1 | -22/+31 |
| | | | | | | | | | | | | | | | | | | | slots each. As a concequence they get numbered as 0, 2, 4 and so on. The first slot is used for operand uses and the second for defs. Here's an example: 0: A = ... 2: B = ... 4: C = A + B ;; last use of A The live intervals should look like: A = [1, 5) B = [3, x) C = [5, y) llvm-svn: 11141 | ||||
| * | 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 | ||||
| * | We don't need to scan the blocks that we are live-in on every | Alkis Evlogimenos | 2004-02-05 | 1 | -12/+13 |
| | | | | | | | access. Rather we only have to do it on the creation of the interval. llvm-svn: 11135 | ||||
| * | In a "seeing the forest through the trees" kinda situation, I realized that a | Chris Lattner | 2004-02-05 | 1 | -227/+230 |
| | | | | | | | | | | | complete rewrite of load-vn will make it a bit faster. This changes speeds up the gcse pass (which uses load-vn) from 25.45s to 0.42s on the testcase in PR209. I've also verified that this gives the exact same results as the old one. llvm-svn: 11132 | ||||
| * | This is a big diff with no functionality change. We just reorder some code, | Chris Lattner | 2004-02-05 | 1 | -73/+60 |
| | | | | | | | | which causes big reindentation. While I'm at it, I fix the fixme by removing some dead code. llvm-svn: 11131 | ||||
| * | finegrainify namespacification | Chris Lattner | 2004-02-05 | 1 | -5/+2 |
| | | | | | llvm-svn: 11130 | ||||
| * | Added missing include. | Tanya Lattner | 2004-02-05 | 1 | -0/+1 |
| | | | | | llvm-svn: 11129 | ||||
| * | Fixed Chris' typo. | Tanya Lattner | 2004-02-05 | 1 | -1/+1 |
| | | | | | llvm-svn: 11128 | ||||
| * | Implement optimizations for handling large basic blocks. | Chris Lattner | 2004-02-05 | 1 | -29/+77 |
| | | | | | llvm-svn: 11126 | ||||
| * | Modify the two address instruction pass to remove the duplicate | Alkis Evlogimenos | 2004-02-04 | 7 | -170/+160 |
| | | | | | | | operand of the instruction and thus simplify the register allocation. llvm-svn: 11124 | ||||
| * | Minor speedup, don't query ValueMap each time through the loop | Chris Lattner | 2004-02-04 | 1 | -6/+3 |
| | | | | | llvm-svn: 11123 | ||||
| * | Take away the default iostream argument of createMachineFunctionPrinterPass(), | Brian Gaeke | 2004-02-04 | 1 | -6/+6 |
| | | | | | | | at Chris's request. llvm-svn: 11120 | ||||
| * | 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 | ||||
| * | IMULri* instructions do not require their first two registers operands | Alkis Evlogimenos | 2004-02-04 | 2 | -7/+9 |
| | | | | | | | to be the same (IOW they are not two address instructions). llvm-svn: 11117 | ||||
| * | 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 | ||||
| * | Adjust to the new BB ctor | Chris Lattner | 2004-02-04 | 1 | -24/+8 |
| | | | | | llvm-svn: 11113 | ||||
| * | Remove unneeded code now that splitBasicBlock does the "right thing" | Chris Lattner | 2004-02-04 | 1 | -5/+0 |
| | | | | | llvm-svn: 11111 | ||||
| * | When splitting a basic block, insert the new half immediately after the first | Chris Lattner | 2004-02-04 | 1 | -1/+1 |
| | | | | | | | half. llvm-svn: 11110 | ||||
| * | 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 | ||||
| * | If changing a parent, don't add then remove the object from the leak detector | Chris Lattner | 2004-02-04 | 1 | -5/+5 |
| | | | | | llvm-svn: 11106 | ||||
| * | In BasicBlock::splitBasicBlock, just use islist::splice to move the ↵ | Chris Lattner | 2004-02-03 | 1 | -8/+3 |
| | | | | | | | | | | | | instructions, instead of a loop that is really inefficient with large basic blocks. This speeds up the inliner pass on the testcase in PR209 from 13.8s to 2.24s which still isn't exactly speedy, but is a lot better. :) llvm-svn: 11105 | ||||
| * | 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 | ||||
| * | Generate ftst instructions for comparison against zero | Chris Lattner | 2004-02-03 | 1 | -0/+9 |
| | | | | | llvm-svn: 11098 | ||||
| * | Add the ftst instruction | Chris Lattner | 2004-02-03 | 1 | -1/+3 |
| | | | | | llvm-svn: 11095 | ||||
| * | Add support for one argument OneArgFP instructions | Chris Lattner | 2004-02-03 | 1 | -3/+4 |
| | | | | | llvm-svn: 11094 | ||||
| * | When an instruction like: A += B had both A and B virtual registers | Alkis Evlogimenos | 2004-02-03 | 2 | -10/+24 |
| | | | | | | | spilled, A was loaded from its stack location twice. This fixes the bug. llvm-svn: 11093 | ||||
| * | Revert changes. Will implement this using a different set of primitives | Alkis Evlogimenos | 2004-02-02 | 1 | -9/+3 |
| | | | | | llvm-svn: 11091 | ||||
| * | Fix debugging output. | Alkis Evlogimenos | 2004-02-02 | 1 | -1/+1 |
| | | | | | llvm-svn: 11088 | ||||
| * | Correctly update def/use information for modified machine operands. | Alkis Evlogimenos | 2004-02-02 | 1 | -3/+9 |
| | | | | | llvm-svn: 11087 | ||||
| * | Should be more careful. The previously applied change made all counts | Alkis Evlogimenos | 2004-02-02 | 1 | -10/+6 |
| | | | | | | | outside of loops = 0. llvm-svn: 11085 | ||||
| * | Floating point negates are -0.0 - X, not 0.0 - X | Chris Lattner | 2004-02-02 | 1 | -5/+13 |
| | | | | | llvm-svn: 11084 | ||||
| * | 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 | ||||
| * | No need to declare implicit uses/defs of ST0 | Chris Lattner | 2004-02-02 | 1 | -1/+1 |
| | | | | | llvm-svn: 11081 | ||||
| * | Make deadarghaX0r warning louder. | Brian Gaeke | 2004-02-02 | 1 | -1/+1 |
| | | | | | | | (I just love typing haX0r. haX0r haX0r haX0r.) llvm-svn: 11079 | ||||
| * | Generate the fchs instruction to negate a floating point number | Chris Lattner | 2004-02-02 | 2 | -1/+15 |
| | | | | | llvm-svn: 11078 | ||||
| * | Add support for OneArgFPRW instructions, fix a couple of typeos | Chris Lattner | 2004-02-02 | 1 | -12/+43 |
| | | | | | llvm-svn: 11077 | ||||
| * | Include PowerPC.h. Flesh out the stub versions of addPassesToEmitAssembly() | Brian Gaeke | 2004-02-02 | 1 | -3/+13 |
| | | | | | | | and addPassesToJITCompile() slightly. llvm-svn: 11076 | ||||
| * | Add comments describing how you would add prototypes for factory methods for | Brian Gaeke | 2004-02-02 | 1 | -0/+15 |
| | | | | | | | PowerPC-specific passes here. llvm-svn: 11073 | ||||
| * | Codegen -0.0 correctly. Do not use fldz! This is another -0.0 == +0.0 ↵ | Chris Lattner | 2004-02-02 | 1 | -4/+4 |
| | | | | | | | problem, arg. llvm-svn: 11070 | ||||
| * | Create an object for tracking physical register usage. This will look | Alkis Evlogimenos | 2004-02-02 | 1 | -106/+116 |
| | | | | | | | much better when I get rid of the reserved registers. llvm-svn: 11066 | ||||

