aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
...
* * Make sure complex pattern operands are selected first since their selectEvan Cheng2005-12-092-66/+83
| | | | | | | | functions can return false and causing the instruction pattern match to fail. * Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24642 91177308-0d34-0410-b5e6-96231b3b80d8
* * Added an explicit type field to ComplexPattern.Evan Cheng2005-12-083-9/+12
| | | | | | | * Renamed MatchingNodes to RootNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24636 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support for ComplexPattern. These are patterns that require C++ patternEvan Cheng2005-12-084-47/+171
| | | | | | | | matching code that is not currently auto-generated by tblgen, e.g. X86 addressing mode. Selection routines for complex patterns can return multiple operands, e.g. X86 addressing mode returns 4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24634 91177308-0d34-0410-b5e6-96231b3b80d8
* * Infer instruction property hasCtrlDep from pattern if it has one.Evan Cheng2005-12-051-31/+50
| | | | | | | * Fixed a bug related to hasCtrlDep property use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24610 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement PR673: for explicit register references, use type informationChris Lattner2005-12-051-15/+8
| | | | | | | if available git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24597 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some methodsChris Lattner2005-12-052-1/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24596 91177308-0d34-0410-b5e6-96231b3b80d8
* Generate code to silence bogus GCC warnings.Chris Lattner2005-12-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24593 91177308-0d34-0410-b5e6-96231b3b80d8
* * Commit the fix (by Chris) for a tblgen type inferencing bug.Evan Cheng2005-12-044-71/+198
| | | | | | | | | | | | * Enhanced tblgen to handle instructions which have chain operand and writes a chain result. * Enhanced tblgen to handle instructions which produces no results. Part of the change is a temporary hack which relies on instruction property (e.g. isReturn, isBranch). The proper fix would be to change the .td syntax to separate results dag from ops dag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24587 91177308-0d34-0410-b5e6-96231b3b80d8
* Support multiple ValueTypes per RegisterClass, needed for upcoming vectorNate Begeman2005-12-014-17/+57
| | | | | | | work. This change has no effect on generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24563 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach tblgen to accept register source operands in patterns, e.g.Evan Cheng2005-12-012-8/+69
| | | | | | | | | | | | def SHL8rCL : I<0xD2, MRM4r, (ops R8 :$dst, R8 :$src), "shl{b} {%cl, $dst|$dst, %CL}", [(set R8:$dst, (shl R8:$src, CL))]>, Imp<[CL],[]>; This generates a CopyToReg operand and added its 2nd result to the shl as a flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24557 91177308-0d34-0410-b5e6-96231b3b80d8
* Nuke CodeGenInstruction's ValueType member, it is no longer used.Nate Begeman2005-12-012-18/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24556 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop checking the ValueType of the CodeGenInstruction. Instead, use theNate Begeman2005-12-013-28/+62
| | | | | | | | ValueType from the RegisterClass or Operands. This step is necessary to allow RegisterClasses to have multiple ValueTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24555 91177308-0d34-0410-b5e6-96231b3b80d8
* fit into 80 columnsNate Begeman2005-11-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24554 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the code generated by tblgen return the result of SelectNodeTo, toChris Lattner2005-11-301-2/+1
| | | | | | | permit future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24553 91177308-0d34-0410-b5e6-96231b3b80d8
* No longer track value types for asm printer operands, and remove them asNate Begeman2005-11-301-12/+6
| | | | | | | | an argument to every operand printing function. Requires some slight tweaks to x86, the only user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24541 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some copy and paste typos.Nate Begeman2005-11-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24540 91177308-0d34-0410-b5e6-96231b3b80d8
* Better error message when unrecognized opcode is seen.Evan Cheng2005-11-291-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24519 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the new vector types to tablegenNate Begeman2005-11-291-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24514 91177308-0d34-0410-b5e6-96231b3b80d8
* Initialize this variable on all paths, fixing a crasher in windows. ThanksChris Lattner2005-11-191-1/+1
| | | | | | | to JeffC for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24426 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach tblgen about instruction operands that have multiple MachineInstrChris Lattner2005-11-193-9/+29
| | | | | | | | operands, digging into them to find register values (used on X86). Patch by Evan Cheng! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24424 91177308-0d34-0410-b5e6-96231b3b80d8
* Validate that the input to 'Pat' patterns is sane.Chris Lattner2005-11-171-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24393 91177308-0d34-0410-b5e6-96231b3b80d8
* teach tblgen to be smart enough to handle tglobaladdr nodesChris Lattner2005-11-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24391 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a tblgen bug that Evan ran into, where we would lose the '$src' nameChris Lattner2005-11-161-4/+4
| | | | | | | on patterns like "(set R32:$dst, (i32 imm:$src))" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24383 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Remove ranges from itinerary data.Jim Laskey2005-11-031-9/+11
| | | | | | | 2. Tidy up the subtarget emittined code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24172 91177308-0d34-0410-b5e6-96231b3b80d8
* Reject integer literals that are out of range for their type.Chris Lattner2005-11-031-1/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24162 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for immediates directly in the pattern, this allows itanium toChris Lattner2005-11-022-3/+33
| | | | | | | | | define: def : Pat<(i1 1), (CMPEQ r0, r0)>; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24149 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow itineraries to be passed through the Target Machine.Jim Laskey2005-11-013-16/+38
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24139 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep VC++ happy.Jeff Cohen2005-11-011-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24137 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit itinerary class in instruction info.Jim Laskey2005-10-312-2/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24122 91177308-0d34-0410-b5e6-96231b3b80d8
* Generate cpu to itinerary map.Jim Laskey2005-10-312-8/+63
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24121 91177308-0d34-0410-b5e6-96231b3b80d8
* Make negative immediates in patterns work correctly, silence some warningsChris Lattner2005-10-291-1/+1
| | | | | | | building the itanium backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24095 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch more code over to using getValueAsListOfDefs. Look at all the -'s. :)Chris Lattner2005-10-283-41/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24074 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename Record::getValueAsListDef to getValueAsListOfDefs, to more accuratelyChris Lattner2005-10-285-34/+24
| | | | | | | | reflect what it is. Convert some more code over to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24072 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the new interface Jim addedChris Lattner2005-10-281-15/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24071 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed Mr. Smith from the code.Jim Laskey2005-10-282-172/+144
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24070 91177308-0d34-0410-b5e6-96231b3b80d8
* Added method to return a vector of records for a ListInit of Def field. ThisJim Laskey2005-10-282-0/+25
| | | | | | | simplifies using list of records. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24069 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some commentary.Jim Laskey2005-10-281-19/+119
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24055 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep Visual Studio happy.Jeff Cohen2005-10-281-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24052 91177308-0d34-0410-b5e6-96231b3b80d8
* Now generating instruction itineraries for scheduling. Not my best work, but...Jim Laskey2005-10-272-32/+211
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24050 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify.Jim Laskey2005-10-261-6/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24015 91177308-0d34-0410-b5e6-96231b3b80d8
* Give full control of subtarget features over to table generated code.Jim Laskey2005-10-262-15/+65
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24013 91177308-0d34-0410-b5e6-96231b3b80d8
* Condcodes are in the ISD namespaceChris Lattner2005-10-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24010 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for CondCode'sChris Lattner2005-10-261-4/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24008 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit some boilerplate for targetsChris Lattner2005-10-251-0/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23983 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactored to make room for more stuff (scheduling info.)Jim Laskey2005-10-252-77/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23975 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an incompatibility with GCC 4.1, thanks to Vladimir MerzliakovChris Lattner2005-10-241-3/+0
| | | | | | | for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23963 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the needed #include, emit enums with the sizes of tables, removeChris Lattner2005-10-231-9/+12
| | | | | | | definitions from the LLVM namespace, since they are all static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23907 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the obsolete instr selector emitterChris Lattner2005-10-233-1701/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23894 91177308-0d34-0410-b5e6-96231b3b80d8
* Sort the features and processor lists for the sake of search (and maintainers.)Jim Laskey2005-10-221-2/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23879 91177308-0d34-0410-b5e6-96231b3b80d8
* Plugin new subtarget backend into the build.Jim Laskey2005-10-211-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23870 91177308-0d34-0410-b5e6-96231b3b80d8