#
c4195953 |
| 01-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Add machine operand for MDNodes. This will be used to communicate debug info.
llvm-svn: 74628
|
#
0dc101b8 |
| 30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can fee
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.
This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.
llvm-svn: 74518
show more ...
|
#
8a088663 |
| 25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
ad MachineInstrBuilder support for target flags on operands.
llvm-svn: 74155
|
#
fd682802 |
| 24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Rearrange some stuff in MachineOperand and add a new TargetFlags field.
llvm-svn: 74087
|
#
98b13ac6 |
| 21-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols
llvm-svn: 73838
|
#
89892b05 |
| 15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Give RemoveRegOperandFromRegInfo a comment and move the code out of line.
llvm-svn: 69124
|
Revision tags: llvmorg-2.5.0 |
|
#
76da281a |
| 23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Comment MO_FPImmediate and doxygenate surrounding comments.
llvm-svn: 61374
|
Revision tags: llvmorg-2.4.0 |
|
#
2fe6bee5 |
| 18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to fold constant offsets into GlobalAddress nodes, and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.)
This allows instruction s
Teach DAGCombine to fold constant offsets into GlobalAddress nodes, and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.)
This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions.
This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective.
Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t.
The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets.
llvm-svn: 57748
show more ...
|
#
0d1e9a8e |
| 03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc.
llvm-svn: 57006
|
#
c36660d7 |
| 24-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals.
llvm-svn: 56539
show more ...
|
#
4d7445b3 |
| 21-Sep-2008 |
Chris Lattner <sabre@nondot.org> |
explain what earlyclobber actually is.
llvm-svn: 56415
|
#
f8610ebe |
| 17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments.
llvm-svn: 56290
show more ...
|
#
c0d712d9 |
| 14-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
adjust last patch per review feedback
llvm-svn: 56194
|
#
38453eeb |
| 13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it.
llvm-svn: 56189
show more ...
|
#
ec270fb6 |
| 12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and ConstantFP* instead of APInt and APFloat directly.
This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode no
Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and ConstantFP* instead of APInt and APFloat directly.
This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls.
It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases.
It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP.
llvm-svn: 56162
show more ...
|
#
1f3ab868 |
| 12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Pass "earlyclobber" bit through to machine representation; coalescer and RA need to know about it. No functional change.
llvm-svn: 56161
|
#
9371964f |
| 21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use raw_ostream throughout the AsmPrinter.
llvm-svn: 55092
|
#
84b6cc9c |
| 10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix a copy+pasto in an assertion string.
llvm-svn: 53419
|
Revision tags: llvmorg-2.3.0 |
|
#
18e29d07 |
| 29-May-2008 |
Dan Gohman <gohman@apple.com> |
Prune and tidy #includes.
llvm-svn: 51697
|
#
31715f1a |
| 14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out r48353. Not needed.
llvm-svn: 48375
|
#
3108798e |
| 14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an MO_Undef MachineOperandType, intended for INSERT_SUBREG. Next up MO_Undead.
llvm-svn: 48353
|
#
26b76b69 |
| 14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support a new type of MachineOperand, MO_FPImmediate, used for holding FP Immediates, crazily enough
llvm-svn: 47117
|
Revision tags: llvmorg-2.2.0 |
|
#
242223ab |
| 29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords.
llvm-svn: 46506
|
#
8a497053 |
| 01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
add efficient iteration support for register use/def's within a machine function.
llvm-svn: 45479
|
#
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 ...
|