| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | 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 | |||||
| * | Second half of a fix for PR218 & ↵ | Chris Lattner | 2004-02-01 | 1 | -4/+43 | |
| | | | | | | | | | | | test/Regression/Assembler/2004-02-01-NegativeZero.llx. Basically we store floating point values as their integral components, instead of relying on the semantics of floating point < to differentiate between values. This is likely to make the map search be faster anyway. llvm-svn: 11064 | |||||
| * | Change weight array into a vector and make it as big as the number of | Alkis Evlogimenos | 2004-02-01 | 1 | -17/+25 | |
| | | | | | | | | | | | | registers (not as the max number of registers). Change toSpill from a std::set into a std::vector<bool>. Use the reverse iterator adapter to do a reverse scan of allocatable registers. llvm-svn: 11061 | |||||
| * | Use std::map::count() instead of std::map::find() != std::map::end() | Alkis Evlogimenos | 2004-02-01 | 1 | -5/+3 | |
| | | | | | | | where appropriate. llvm-svn: 11060 | |||||
| * | Change string for joined intervals. | Alkis Evlogimenos | 2004-02-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 11057 | |||||
| * | FpMOV is also a move instruction. | Alkis Evlogimenos | 2004-02-01 | 1 | -1/+2 | |
| | | | | | llvm-svn: 11055 | |||||
| * | Change xor to ^. | Alkis Evlogimenos | 2004-02-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 11054 | |||||
| * | 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 a bug in a recent checkin | Chris Lattner | 2004-02-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 11050 | |||||
| * | Fix the count of the number of instructions removed | Chris Lattner | 2004-02-01 | 1 | -0/+1 | |
| | | | | | llvm-svn: 11049 | |||||
| * | Missed one silly assert :-) | Alkis Evlogimenos | 2004-02-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 11048 | |||||
| * | Simplify joinIntervals() code. | Alkis Evlogimenos | 2004-02-01 | 1 | -62/+57 | |
| | | | | | llvm-svn: 11047 | |||||

