summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/DAGISelEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* implement a fixme: only select values once, even if used multiple times.Chris Lattner2005-09-261-5/+8
| | | | llvm-svn: 23454
* Fix VC++ build errors.Jeff Cohen2005-09-251-0/+2
| | | | llvm-svn: 23431
* memoize translationsChris Lattner2005-09-241-0/+11
| | | | llvm-svn: 23419
* Teach the DAG isel generator to emit code that creates nodes.Chris Lattner2005-09-241-18/+107
| | | | | | Fix a few corner cases parsing things like (i32 imm:$foo) llvm-svn: 23417
* Emit better code (no more copies for var references), and support DAG patternsChris Lattner2005-09-231-8/+24
| | | | | | (e.g. things like rotates). llvm-svn: 23416
* Fix a fixme by passing around SDOperand's instead of SDNode*'sChris Lattner2005-09-231-15/+14
| | | | llvm-svn: 23415
* Emit code that matches the incoming DAG pattern and checks predicates.Chris Lattner2005-09-231-4/+62
| | | | | | | | | This does not check that types match yet, but PPC only has one integer type ;-). This also doesn't have the code to build the resultant dag. llvm-svn: 23414
* emit information about the order patterns are to be matched.Chris Lattner2005-09-231-0/+56
| | | | llvm-svn: 23413
* start filling in the switch stmtChris Lattner2005-09-231-1/+17
| | | | llvm-svn: 23412
* Fix a minor bug, add commentsChris Lattner2005-09-161-2/+5
| | | | llvm-svn: 23370
* teach the type inference code how to infer types for instructions and nodeChris Lattner2005-09-151-28/+58
| | | | | | | xforms. Run type inference on result patterns, so we always have fully typed results (and to catch errors in .td files). llvm-svn: 23369
* put instructions into a map instead of a vector for quick lookupChris Lattner2005-09-151-6/+12
| | | | llvm-svn: 23368
* when parsing instructions remember information about the types taken andChris Lattner2005-09-151-3/+7
| | | | | | returned. llvm-svn: 23367
* Start parsing "Pattern" nodesChris Lattner2005-09-151-11/+52
| | | | llvm-svn: 23365
* rename a couple of methods, add structure for pattern parsingChris Lattner2005-09-151-15/+26
| | | | llvm-svn: 23364
* Verify that xform functions only occur in logical placesChris Lattner2005-09-141-5/+14
| | | | llvm-svn: 23363
* Promote xform fns to be explicit nodes in result patterns, and clean offChris Lattner2005-09-141-1/+15
| | | | | | predicates since they will have already matched at this point. llvm-svn: 23362
* start building the instruction dest pattern correctly. Change the xformChris Lattner2005-09-141-8/+15
| | | | | | | functions to preserve the Record for the xform instead of making it into a function name. llvm-svn: 23361
* catch unnamed inputsChris Lattner2005-09-141-1/+9
| | | | llvm-svn: 23360
* check that there are no unexpected operandsChris Lattner2005-09-141-3/+11
| | | | llvm-svn: 23359
* force all instruction operands to be named.Chris Lattner2005-09-141-3/+0
| | | | llvm-svn: 23358
* fix a broke range checkChris Lattner2005-09-141-1/+1
| | | | llvm-svn: 23354
* Parse significantly more of the instruction pattern, now collecting andChris Lattner2005-09-141-46/+137
| | | | | | verifying information about the operands. llvm-svn: 23353
* Verify that set destinations occur first in the instruction operand list.Chris Lattner2005-09-141-2/+28
| | | | llvm-svn: 23351
* remove some code that isn't ready for prime timeChris Lattner2005-09-141-2/+2
| | | | llvm-svn: 23346
* Switch to a slightly more structured representation for instructionsChris Lattner2005-09-141-6/+5
| | | | llvm-svn: 23345
* Add some more checking/verification codeChris Lattner2005-09-141-2/+19
| | | | llvm-svn: 23344
* start parsing instructions into patterns, start doing many more checks ofChris Lattner2005-09-141-4/+56
| | | | | | 'set's. llvm-svn: 23343
* don't emit the namespace inside the class!Chris Lattner2005-09-131-2/+1
| | | | llvm-svn: 23341
* Emit code suitable for emission into the ISel class, allowing us to use/defineChris Lattner2005-09-131-4/+4
| | | | | | methods. llvm-svn: 23340
* continue xform function parsingChris Lattner2005-09-131-1/+7
| | | | llvm-svn: 23338
* Start parsing node transformation informationChris Lattner2005-09-131-6/+37
| | | | llvm-svn: 23337
* completely eliminate TreePattern::PatternTypeChris Lattner2005-09-131-64/+38
| | | | llvm-svn: 23335
* add an accessor to provide more checkingChris Lattner2005-09-091-5/+5
| | | | llvm-svn: 23289
* use new accessors to simplify code. Add checking to make sure top-level instrChris Lattner2005-09-091-4/+12
| | | | | | definitions are void llvm-svn: 23288
* Fix incorrect commentChris Lattner2005-09-081-3/+2
| | | | llvm-svn: 23285
* Implement a complete type inference system for dag patterns, based on theChris Lattner2005-09-081-9/+176
| | | | | | | | | | | | | | | constraints defined in the DAG node definitions in the .td files. This allows us to infer (and check!) the types for all nodes in the current ppc .td file. For example, instead of: Inst pattern EQV: (set GPRC:i32:$rT, (xor (xor GPRC:i32:$rA, GPRC:i32:$rB), (imm)<<Predicate_immAllOnes>>)) we now fully infer: Inst pattern EQV: (set:void GPRC:i32:$rT, (xor:i32 (xor:i32 GPRC:i32:$rA, GPRC:i32:$rB), (imm:i32)<<Predicate_immAllOnes>>)) from: (set GPRC:$rT, (not (xor GPRC:$rA, GPRC:$rB))) llvm-svn: 23284
* Parse information about type constraints on SDNodesChris Lattner2005-09-081-0/+40
| | | | llvm-svn: 23281
* use node info in the one place we currently use itChris Lattner2005-09-081-1/+1
| | | | llvm-svn: 23280
* start parsing SDNode info recordsChris Lattner2005-09-081-0/+17
| | | | llvm-svn: 23279
* Keep names even when inlining. This allows us to realize that ADDI is:Chris Lattner2005-09-081-1/+2
| | | | | | | | | | | | (set GPRC:i32:$rD, (add GPRC:i32:$rA, (imm)<<Predicate_immSExt16>>:$imm)) not: (set GPRC:i32:$rD, (add GPRC:i32:$rA, (imm)<<Predicate_immSExt16>>)) (we keep the ":$imm") llvm-svn: 23269
* Initial cut of the dag isel generator. This is still very much a work inChris Lattner2005-09-071-0/+475
progress. It correctly parses instructions and pattern fragments and glues together pattern fragments into instructions. The only code it generates currently is some boilerplate code for things like the EntryNode. llvm-svn: 23261
OpenPOWER on IntegriCloud