| #
c9ae94c7 |
| 19-Mar-2010 |
Chris Lattner <[email protected]> |
factor copy and paste code.
llvm-svn: 98908
|
| #
9aec14b5 |
| 19-Mar-2010 |
Chris Lattner <[email protected]> |
look up instructions by record, not by name.
llvm-svn: 98904
|
| #
cabe037b |
| 15-Mar-2010 |
Chris Lattner <[email protected]> |
Completely rewrite tblgen's type inference mechanism, changing the primary datastructure from being a "std::vector<unsigned char>" to being a new TypeSet class that actually has (gasp) invariants!
Completely rewrite tblgen's type inference mechanism, changing the primary datastructure from being a "std::vector<unsigned char>" to being a new TypeSet class that actually has (gasp) invariants!
This changes more things than I remember, but one major innovation here is that it enforces that named input values agree in type with their output values.
This also eliminates code that transparently assumes (in some cases) that SDNodeXForm input/output types are the same, because this is wrong in many case.
This also eliminates a bug which caused a lot of ambiguous patterns to go undetected, where a register class would sometimes pick the first possible type, causing an ambiguous pattern to get arbitrary results.
With all the recent target changes, this causes no functionality change!
llvm-svn: 98534
show more ...
|
| #
b06015aa |
| 09-Feb-2010 |
Chris Lattner <[email protected]> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start u
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase.
llvm-svn: 95687
show more ...
|
| #
881ba0bb |
| 15-Jan-2010 |
Dale Johannesen <[email protected]> |
Remove DEBUG_DECLARE, looks like we don't need it. Also, DEBUG_VALUE has side effects.
llvm-svn: 93498
|
| #
237254dc |
| 09-Jan-2010 |
Dale Johannesen <[email protected]> |
Add DEBUG_DECLARE. Not used yet.
llvm-svn: 93040
|
| #
8f047406 |
| 08-Jan-2010 |
Dale Johannesen <[email protected]> |
Add DEBUG_VALUE. Not used yet.
llvm-svn: 93030
|
| #
b91411c9 |
| 04-Jan-2010 |
Dan Gohman <[email protected]> |
Remove the CPAttrParentAsRoot code, which is unused, and inconvenient for a refactoring I'm working on.
llvm-svn: 92503
|
|
Revision tags: llvmorg-2.6.0 |
|
| #
dc9efe80 |
| 28-Sep-2009 |
Jakob Stoklund Olesen <[email protected]> |
Introduce the TargetInstrInfo::KILL machine instruction and get rid of the unused DECLARE instruction.
KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places wher
Introduce the TargetInstrInfo::KILL machine instruction and get rid of the unused DECLARE instruction.
KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers.
llvm-svn: 83006
show more ...
|
| #
9f94459d |
| 11-Aug-2009 |
Owen Anderson <[email protected]> |
Split EVT into MVT and EVT, the former representing _just_ a primitive type, while the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
| #
781797f5 |
| 11-Aug-2009 |
Bob Wilson <[email protected]> |
Fix a few more places in TableGen that need to handle EVT::vAny types.
llvm-svn: 78643
|
| #
2cd5da83 |
| 11-Aug-2009 |
Bob Wilson <[email protected]> |
Add a new overloaded EVT::vAny type for use in TableGen to allow intrinsic arguments that are vectors of any size and element type.
llvm-svn: 78631
|
| #
53aa7a96 |
| 10-Aug-2009 |
Owen Anderson <[email protected]> |
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.
llvm-svn: 78610
|
| #
0033199c |
| 29-Jul-2009 |
Daniel Dunbar <[email protected]> |
Match X86 register names to number.
llvm-svn: 77404
|
| #
9ad1594f |
| 15-Jul-2009 |
Duncan Sands <[email protected]> |
Remove the v3i32 and v3f32 value types: they are not native for any supported targets.
llvm-svn: 75785
|
| #
c6026b51 |
| 14-Jul-2009 |
Bob Wilson <[email protected]> |
Revert 75308.
llvm-svn: 75565
|
| #
73fd66c0 |
| 10-Jul-2009 |
Bob Wilson <[email protected]> |
Add new vector types for 192-bit, 348-bit and 512-bit sizes. These are needed to represent ARM Neon struct datatypes containing 2, 3 or 4 separate vectors.
llvm-svn: 75308
|
| #
bf8e4c11 |
| 10-Jul-2009 |
Bob Wilson <[email protected]> |
Refactor TableGen's llvm::getName to share code with llvm::getEnumName, since names are the same for almost all the types.
llvm-svn: 75302
|
| #
5832e7fd |
| 06-Jul-2009 |
Devang Patel <[email protected]> |
Add new ValueType for metadata.
llvm-svn: 74882
|
| #
38a22bff |
| 03-Jul-2009 |
Daniel Dunbar <[email protected]> |
Replace std::iostreams with raw_ostream in TableGen. - Sorry, I can't help myself.
- No intended functionality change.
llvm-svn: 74742
|
| #
f92ba97c |
| 29-Jun-2009 |
David Greene <[email protected]> |
Add more vector ValueTypes for AVX and other extended vector instruction sets.
llvm-svn: 74427
|
| #
5234d379 |
| 02-Jun-2009 |
Dale Johannesen <[email protected]> |
Revert 72707 and 72709, for the moment.
llvm-svn: 72712
|
| #
0b8ca792 |
| 01-Jun-2009 |
Dale Johannesen <[email protected]> |
Make the implicit inputs and outputs of target-independent ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-inde
Make the implicit inputs and outputs of target-independent ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format.
Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets.
The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC.
llvm-svn: 72707
show more ...
|
| #
b8c370a8 |
| 16-Apr-2009 |
Bob Wilson <[email protected]> |
Fix PR3994: LLVMMatchType arguments do not refer to absolute return value and argument positions but only to the overloaded intrinsic parameters. Keep a separate list of these overloaded parameters i
Fix PR3994: LLVMMatchType arguments do not refer to absolute return value and argument positions but only to the overloaded intrinsic parameters. Keep a separate list of these overloaded parameters in CodeGenTarget.cpp so they can be resolved easily. Remove assertions from IntrinsicEmitter.cpp: they were harmless but confusing, and the assertions elsewhere in TableGen will catch any incorrect values.
llvm-svn: 69316
show more ...
|
| #
6c142630 |
| 13-Apr-2009 |
Dan Gohman <[email protected]> |
Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize it accordingly. Thanks to Jakob Stoklund Olesen for pointing out how this might be useful.
llvm-svn: 68986
|