- Apr 01, 2008
-
-
Evan Cheng authored
llvm-svn: 49053
-
Evan Cheng authored
llvm-svn: 49002
-
- Mar 31, 2008
-
-
Evan Cheng authored
The support for remat of instructions with a register operand is hackish, to say the least. Since the register operand guaranteed to be PIC base and that it is already live at all uses, we are making sure it will not be spilled after its uses are rematerialized for both performance and correctness reasons. llvm-svn: 48976
-
- Mar 15, 2008
-
-
Evan Cheng authored
llvm-svn: 48381
-
- Mar 11, 2008
-
-
Evan Cheng authored
llvm-svn: 48246
-
Evan Cheng authored
When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting. llvm-svn: 48218
-
- Mar 05, 2008
-
-
Evan Cheng authored
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927
-
- Feb 27, 2008
-
-
Evan Cheng authored
llvm-svn: 47657
-
- Feb 26, 2008
-
-
Bill Wendling authored
llvm-svn: 47629
-
Bill Wendling authored
would have been a Godsend here! llvm-svn: 47625
-
- Feb 25, 2008
-
-
Evan Cheng authored
All remat'ed loads cannot be folded into two-address code. Not just argument loads. This change doesn't really have any impact on codegen. llvm-svn: 47557
-
Evan Cheng authored
llvm-svn: 47545
-
- Feb 23, 2008
-
-
Evan Cheng authored
llvm-svn: 47529
-
Evan Cheng authored
If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded. llvm-svn: 47526
-
Evan Cheng authored
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction. llvm-svn: 47520
-
Evan Cheng authored
llvm-svn: 47507
-
- Feb 22, 2008
-
-
Evan Cheng authored
the definition of the operand also reaches its uses. llvm-svn: 47475
-
- Feb 21, 2008
-
-
Evan Cheng authored
llvm-svn: 47416
-
- Feb 18, 2008
-
-
Roman Levenstein authored
New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan. llvm-svn: 47267
-
- Feb 15, 2008
-
-
Evan Cheng authored
register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. llvm-svn: 47167
-
- Feb 13, 2008
-
-
Evan Cheng authored
Fix a potential serious problem where kills belonging to the val# defined by a two-address instruction is also on the val# that defines the input. llvm-svn: 47057
-
- Feb 10, 2008
-
-
Dan Gohman authored
llvm-svn: 46930
-
- Feb 08, 2008
-
-
Evan Cheng authored
llvm-svn: 46896
-
- Jan 24, 2008
-
-
Owen Anderson authored
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. llvm-svn: 46295
-
- Jan 10, 2008
-
-
Evan Cheng authored
llvm-svn: 45831
-
Evan Cheng authored
llvm-svn: 45830
-
Owen Anderson authored
llvm-svn: 45815
-
- Jan 07, 2008
-
-
Chris Lattner authored
Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
-
Chris Lattner authored
llvm-svn: 45689
-
Chris Lattner authored
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
-
Owen Anderson authored
llvm-svn: 45673
-
Chris Lattner authored
llvm-svn: 45667
-
- Jan 04, 2008
-
-
Bill Wendling authored
preserved. llvm-svn: 45596
-
- Dec 31, 2007
-
-
Chris Lattner authored
that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467
-
- Dec 30, 2007
-
-
Chris Lattner authored
- Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h llvm-svn: 45461
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 13, 2007
-
-
Evan Cheng authored
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. llvm-svn: 44960
-
- Dec 11, 2007
-
-
Evan Cheng authored
llvm-svn: 44838
-
- Dec 09, 2007
-
-
Bill Wendling authored
llvm-svn: 44727
-
- Dec 08, 2007
-
-
Bill Wendling authored
isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702
-