#
da960069 |
| 09-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move CalculateRegClass to MRI::recomputeRegClass.
This function doesn't have anything to do with spill weights, and MRI already has functions for manipulating the register class of a virtual registe
Move CalculateRegClass to MRI::recomputeRegClass.
This function doesn't have anything to do with spill weights, and MRI already has functions for manipulating the register class of a virtual register.
llvm-svn: 137123
show more ...
|
#
9760f04e |
| 29-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an isSSA() flag to MachineRegisterInfo.
This flag is true from isel to register allocation when the machine function is required to be in SSA form. The TwoAddressInstructionPass and PHIEliminat
Add an isSSA() flag to MachineRegisterInfo.
This flag is true from isel to register allocation when the machine function is required to be in SSA form. The TwoAddressInstructionPass and PHIElimination passes clear the flag.
The SSA flag wil be used by the machine code verifier to check for SSA form, and eventually an assertion can enforce it in +Asserts builds. This will catch the common target error of creating machine code with multiple defs of a virtual register.
llvm-svn: 136532
show more ...
|
#
21afabe7 |
| 27-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove RegClass2VRegMap from MachineRegisterInfo.
llvm-svn: 133967
|
#
75703ca7 |
| 02-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make it possible to have unallocatable register classes.
Some register classes are only used for instruction operand constraints. They should never be used for virtual registers. Previously, those r
Make it possible to have unallocatable register classes.
Some register classes are only used for instruction operand constraints. They should never be used for virtual registers. Previously, those register classes were given an empty allocation order, but now you can say 'let isAllocatable=0' in the register class definition.
TableGen calculates if a register is part of any allocatable register class, and makes that information available in TargetRegisterDesc::inAllocatableClass.
The goal here is to eliminate use cases for overriding allocation_order_* methods.
llvm-svn: 132508
show more ...
|
Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
#
f3292b21 |
| 21-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table e
Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+)
llvm-svn: 126155
show more ...
|
#
56cc5fdf |
| 31-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Keep track of incoming argument's location while emitting LiveIns.
llvm-svn: 124611
|
#
7f93d8d6 |
| 09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use IndexedMap for MachineRegisterInfo as well. No functional change.
llvm-svn: 123106
|
#
18842783 |
| 06-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE.
This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE.
This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA requiring a GR32_NOSP argument.
llvm-svn: 115875
show more ...
|
Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
0c76d6ec |
| 10-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel.
llvm-svn: 108062
|
#
9a2f0473 |
| 24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach EmitLiveInCopies to omit copies for unused virtual registers, and to clean up unused incoming physregs from the live-in list.
llvm-svn: 106805
|
#
e5457c27 |
| 18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't leak RegClass2VRegMap, which is now a new[] array instead of a std::vector.
llvm-svn: 106298
|
#
882bb298 |
| 18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Start TargetRegisterClass indices at 0 instead of 1, so that MachineRegisterInfo doesn't have to confusingly allocate an extra entry.
llvm-svn: 106296
|
#
c488e92f |
| 29-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused function.
llvm-svn: 105100
|
#
707b7cc4 |
| 29-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove schedule-livein-copies. It's not being used.
llvm-svn: 105095
|
#
1b79babd |
| 24-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding duplicate function live-in's.
llvm-svn: 104560
|
#
7767d274 |
| 13-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a utility function for conservatively clearing kill flags, and make use of it in MachineCSE.
llvm-svn: 103726
|
#
f25be991 |
| 11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Silence warning
llvm-svn: 103508
|
#
3f0241e0 |
| 11-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify the tracking of used physregs to a bulk bitor followed by a transitive closure after allocating all blocks.
Add a few more test cases for -regalloc=fast.
llvm-svn: 103500
|
#
779c69bb |
| 06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess.
llvm-svn: 103194
|
#
6e822459 |
| 28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done.
llvm-svn: 102554
|
Revision tags: llvmorg-2.7.0 |
|
#
0e6fc61f |
| 26-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Insert dbg_value instructions for function entry block liveins (i.e. function arguments).
llvm-svn: 102368
|
#
2ca8fb22 |
| 14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for initialing the entry block livein set out of SelectionDAGISel.
llvm-svn: 101258
|
#
2b79ee8b |
| 14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for emitting livein copies out of SelectionDAGISel.
llvm-svn: 101254
|
#
6b1b1e43 |
| 13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move MachineRegisterInfo's isLiveIn and isLiveOut out of line.
llvm-svn: 101145
|
#
f94d6839 |
| 03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add MachineRegisterInfo::hasOneUse and hasOneNonDBGUse.
llvm-svn: 97663
|