#
1c6c16ea |
| 31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution.
llvm-svn: 46609
|
#
3646fdda |
| 31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand l
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now.
Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects.
Most of this was written by Florian Brander, some reorganization and updating to TOT by me.
llvm-svn: 46585
show more ...
|
#
2a8a4856 |
| 24-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables.
llvm-svn: 46295
|
#
f3efadcb |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove #includage
llvm-svn: 45697
|
#
03ad8850 |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null.
llvm-svn: 45695
|
#
f376c99e |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename hasVariableOperands() -> isVariadic(). Add some comments. Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx.
llvm-svn: 45687
|
#
b0d06b43 |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor
llvm-svn: 45680
|
#
e55e1156 |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add predicates methods to TargetOperandInfo, and switch all clients over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums.
llvm-svn: 45677
|
#
a98c679d |
| 07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects 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
show more ...
|
#
caaf8aae |
| 01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the def of the vreg at the start of the list, so the list doesn't need to be traversed.
llvm-svn: 45483
|
#
0cb9dd7a |
| 01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
switch the register iterator to act more like hte LLVM value iterator: dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand().
Add a new MachineRegisterInf
switch the register iterator to act more like hte LLVM value iterator: dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand().
Add a new MachineRegisterInfo::replaceRegWith, which is basically like Value::replaceAllUsesWith.
llvm-svn: 45482
show more ...
|
#
961e7427 |
| 01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement automatically updated def/use lists for all MachineInstr register operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them.
Implement automatically updated def/use lists for all MachineInstr register operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them.
llvm-svn: 45477
show more ...
|
#
574e7166 |
| 31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
properly encapsulate the parent field of MBB and MI with get/set accessors.
llvm-svn: 45469
|
#
a10fff51 |
| 31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start m
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea 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
show more ...
|
#
a5bb370a |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should jus
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names.
Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
llvm-svn: 45464
show more ...
|
#
6005589f |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
More cleanups for MachineOperand: - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool
More cleanups for MachineOperand: - 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
show more ...
|
#
c98c0e57 |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand: - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand
MachineOperand: - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand::Create* methods, stop initializing fields that are dead.
MachineInstr: - Delete one copy of the MachineInstr printing code, now there is only one dump format and one copy of the code. - Make MachineOperand use the parent field to get info about preg register names if no target info is otherwise available. - Move def/use/kill/dead flag printing to the machineoperand printer, so they are always printed for an operand.
llvm-svn: 45460
show more ...
|
#
35fecece |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simpilfy some register printing code.
llvm-svn: 45458
|
#
383a873a |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a copy of the machineoperand printing stuff. Keep the copy that knows how to print offsets.
llvm-svn: 45457
|
#
49bd29da |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify and clean up some machine operand/instr printing/dumping stuff.
llvm-svn: 45456
|
#
0dad74d2 |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
two register machineoperands are not identical unless their subregs match.
llvm-svn: 45455
|
#
81798417 |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand::getImmedValue -> MachineOperand::getImm
llvm-svn: 45454
|
#
3c6ce5b4 |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make machine operands fatter: give each one an up-pointer to the machineinstr that owns it.
llvm-svn: 45449
|
#
e35dfb82 |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Start using the simplified methods for adding operands.
llvm-svn: 45432
|
#
c288ff1d |
| 30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code by factoring operand construction better.
llvm-svn: 45428
|