Revision tags: llvmorg-2.6.0 |
|
#
e603710d |
| 25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Simplify a few more uses of reg_iterator.
llvm-svn: 82812
|
#
1283c6a0 |
| 15-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Part 1. - Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. -
Part 1. - Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint.
Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0
If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair.
- Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions.
This is work in progress, not yet enabled.
llvm-svn: 73381
show more ...
|
#
085caf10 |
| 14-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them.
llvm-svn: 73346
|
#
210448c2 |
| 15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo::setRegClass out of line.
llvm-svn: 69126
|
Revision tags: llvmorg-2.5.0 |
|
#
91dfc088 |
| 08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move createVirtualRegister out-of-line.
llvm-svn: 60684
|
Revision tags: llvmorg-2.4.0 |
|
#
bc623eda |
| 20-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a register class -> virtual registers map.
llvm-svn: 57844
|
#
14ce7d1e |
| 07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Assert that all MachineInstrs update PhysRegUseDefLists in their cleanup code.
llvm-svn: 53194
|
Revision tags: llvmorg-2.3.0 |
|
#
61732d99 |
| 13-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added debugging routine dumpUses.
llvm-svn: 47042
|
Revision tags: llvmorg-2.2.0 |
|
#
3a4be0fd |
| 10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo.
llvm-svn: 46930
|
#
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 ...
|
#
39204d76 |
| 01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a trivial but handy function to efficiently return the machine instruction that defines the specified vreg. Crazy.
llvm-svn: 45480
|
#
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 ...
|
#
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 ...
|