| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | MachineLICM CSE should match destination register classes; avoid hoisting ↵ | Evan Cheng | 2009-02-27 | 1 | -3/+13 |
| | | | | | | | implicit_def's. llvm-svn: 65592 | ||||
| * | Machine LICM increases register pressure and it almost always increase code ↵ | Evan Cheng | 2009-02-05 | 1 | -0/+4 |
| | | | | | | | size. For now, disable it for optimizing for size. llvm-svn: 63856 | ||||
| * | Teach machine licm to CSE hoisted instructions. | Evan Cheng | 2009-02-05 | 1 | -23/+88 |
| | | | | | llvm-svn: 63854 | ||||
| * | Don't call isInvariantLoad twice. | Evan Cheng | 2009-02-04 | 1 | -9/+2 |
| | | | | | llvm-svn: 63729 | ||||
| * | Don't bother hoisting out a "cheap" instruction if all of its uses are PHIs. ↵ | Evan Cheng | 2009-02-04 | 1 | -10/+55 |
| | | | | | | | LICM "cheap" instructions are not particularly beneficial to start with. This will just end up making the copies harder to coalesce. llvm-svn: 63728 | ||||
| * | For now, only hoist re-materilizable instructions. LICM will increase ↵ | Evan Cheng | 2009-02-04 | 1 | -2/+11 |
| | | | | | | | register pressure. We want to avoid spilling more instructions if it's possible. llvm-svn: 63725 | ||||
| * | Simplify the MachineLICM pass by having it only traverse outer | Dan Gohman | 2009-01-15 | 1 | -122/+60 |
| | | | | | | | | | | loops, hoisting instructions all the way out in one step rather than hoisting them one nest level at a time. Also, make a few other code simplifications. This speeds up MachineLICM by several fold. llvm-svn: 62283 | ||||
| * | Tidy up #includes, deleting a bunch of unnecessary #includes. | Dan Gohman | 2009-01-05 | 1 | -1/+0 |
| | | | | | llvm-svn: 61715 | ||||
| * | Use isTerminator() instead of isBranch()||isReturn() in | Dan Gohman | 2008-12-23 | 1 | -1/+1 |
| | | | | | | | | | several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. llvm-svn: 61373 | ||||
| * | Give MachineLICM a name, for -time-passes etc. | Dan Gohman | 2008-12-18 | 1 | -0/+2 |
| | | | | | llvm-svn: 61184 | ||||
| * | Switch the MachineOperand accessors back to the short names like | Dan Gohman | 2008-10-03 | 1 | -1/+1 |
| | | | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006 | ||||
| * | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 1 | -1/+1 |
| | | | | | llvm-svn: 55779 | ||||
| * | Cosmetic changes to Machine LICM. No functionality change. | Bill Wendling | 2008-08-31 | 1 | -31/+36 |
| | | | | | llvm-svn: 55578 | ||||
| * | Don't hoist instructions that define a physical register. | Bill Wendling | 2008-08-20 | 1 | -1/+8 |
| | | | | | llvm-svn: 55074 | ||||
| * | Don't hoist instructions that have implicit uses or defines. Before, it was | Bill Wendling | 2008-08-18 | 1 | -0/+5 |
| | | | | | | | hoisting out some "test" and "cmp" instructions. This was obvious badness. llvm-svn: 54908 | ||||
| * | Prevent option name conflict. | Bill Wendling | 2008-07-07 | 1 | -1/+1 |
| | | | | | llvm-svn: 53166 | ||||
| * | Clean up the use of static and anonymous namespaces. This turned up | Dan Gohman | 2008-05-13 | 1 | -4/+4 |
| | | | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017 | ||||
| * | Revert the previous commit. Go ahead and hoist rematerializable instructions. | Bill Wendling | 2008-05-12 | 1 | -4/+0 |
| | | | | | llvm-svn: 50990 | ||||
| * | One real change - don't hoist something that's trivially rematerializable. It's | Bill Wendling | 2008-05-12 | 1 | -18/+19 |
| | | | | | | | | | possible for it to produce worse code than before. The rest of this patch is code cleanup. llvm-svn: 50987 | ||||
| * | Minor cleanup. No functionality change. | Bill Wendling | 2008-03-10 | 1 | -6/+8 |
| | | | | | llvm-svn: 48142 | ||||
| * | Rename PrintableName to Name. | Bill Wendling | 2008-02-26 | 1 | -2/+2 |
| | | | | | llvm-svn: 47629 | ||||
| * | Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool | Bill Wendling | 2008-02-26 | 1 | -2/+2 |
| | | | | | | | would have been a Godsend here! llvm-svn: 47625 | ||||
| * | Rename MRegisterInfo to TargetRegisterInfo. | Dan Gohman | 2008-02-10 | 1 | -6/+6 |
| | | | | | llvm-svn: 46930 | ||||
| * | Simplify the side effect stuff a bit more and make licm/sinking | Chris Lattner | 2008-01-10 | 1 | -5/+22 |
| | | | | | | | | | | | | | | | | | both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. llvm-svn: 45843 | ||||
| * | rename TargetInstrDescriptor -> TargetInstrDesc. | Chris Lattner | 2008-01-07 | 1 | -4/+4 |
| | | | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695 | ||||
| * | Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects | Chris Lattner | 2008-01-07 | 1 | -8/+6 |
| | | | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674 | ||||
| * | Add that this preserves some analyses. | Bill Wendling | 2008-01-04 | 1 | -1/+3 |
| | | | | | llvm-svn: 45573 | ||||
| * | Move option to enable machine LICM into LLVMTargetMachine.cpp. | Bill Wendling | 2008-01-04 | 1 | -10/+0 |
| | | | | | llvm-svn: 45572 | ||||
| * | Call the parent's getAnalysisUsage. | Bill Wendling | 2008-01-04 | 1 | -0/+1 |
| | | | | | llvm-svn: 45571 | ||||
| * | remove dead #includes and reorder the rest. | Chris Lattner | 2008-01-04 | 1 | -10/+6 |
| | | | | | llvm-svn: 45569 | ||||
| * | Use the correct MachineRegisterInfo object. | Bill Wendling | 2008-01-02 | 1 | -2/+1 |
| | | | | | llvm-svn: 45499 | ||||
| * | Remove dead code. | Bill Wendling | 2008-01-02 | 1 | -35/+0 |
| | | | | | llvm-svn: 45496 | ||||
| * | Use the new architecture to get the containing machine basic block for a machine | Bill Wendling | 2008-01-02 | 1 | -28/+28 |
| | | | | | | | | instruction. Also, use "splice" to move the new instruction instead of remove/insert (where it was leaking memory anyway). llvm-svn: 45492 | ||||
| * | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 |
| | | | | | llvm-svn: 45418 | ||||
| * | Updated comments to reflect what "side effects" means in this situation. | Bill Wendling | 2007-12-20 | 1 | -10/+3 |
| | | | | | llvm-svn: 45245 | ||||
| * | Add debugging info. Use the newly created "hasUnmodelledSideEffects" method. | Bill Wendling | 2007-12-18 | 1 | -21/+38 |
| | | | | | llvm-svn: 45178 | ||||
| * | Need to grow the indexed map. Added debug statements. | Bill Wendling | 2007-12-11 | 1 | -21/+27 |
| | | | | | llvm-svn: 44892 | ||||
| * | Simplify slightly. | Bill Wendling | 2007-12-11 | 1 | -3/+4 |
| | | | | | llvm-svn: 44881 | ||||
| * | Blark! How in the world did this work without this?! | Bill Wendling | 2007-12-11 | 1 | -4/+9 |
| | | | | | llvm-svn: 44874 | ||||
| * | - Update the virtual reg to machine instruction map when hoisting. | Bill Wendling | 2007-12-11 | 1 | -2/+12 |
| | | | | | | | - Fix subtle bug when creating initially creating this map. llvm-svn: 44873 | ||||
| * | Checking for "zero operands" during the "CanHoistInst()" method isn't necessary | Bill Wendling | 2007-12-11 | 1 | -11/+4 |
| | | | | | | | | | because those with side effects will be caught by other checks in here. Also, simplify the check for a BB in a sub loop. llvm-svn: 44871 | ||||
| * | Reverting 44702. It wasn't correct to rename them. | Bill Wendling | 2007-12-08 | 1 | -13/+13 |
| | | | | | llvm-svn: 44727 | ||||
| * | Renaming: | Bill Wendling | 2007-12-08 | 1 | -1/+1 |
| | | | | | | | | isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702 | ||||
| * | Incorporated comments from Evan and Chris: | Bill Wendling | 2007-12-08 | 1 | -58/+54 |
| | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html llvm-svn: 44696 | ||||
| * | Initial commit of the machine code LICM pass. It successfully hoists this: | Bill Wendling | 2007-12-07 | 1 | -0/+336 |
| _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... llvm-svn: 44687 | |||||

