Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | implement a fixme: only select values once, even if used multiple times. | Chris Lattner | 2005-09-26 | 1 | -5/+8 | |
| | | | | llvm-svn: 23454 | |||||
* | Fix VC++ build errors. | Jeff Cohen | 2005-09-25 | 1 | -0/+2 | |
| | | | | llvm-svn: 23431 | |||||
* | memoize translations | Chris Lattner | 2005-09-24 | 1 | -0/+11 | |
| | | | | llvm-svn: 23419 | |||||
* | Teach the DAG isel generator to emit code that creates nodes. | Chris Lattner | 2005-09-24 | 1 | -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 patterns | Chris Lattner | 2005-09-23 | 1 | -8/+24 | |
| | | | | | | (e.g. things like rotates). llvm-svn: 23416 | |||||
* | Fix a fixme by passing around SDOperand's instead of SDNode*'s | Chris Lattner | 2005-09-23 | 1 | -15/+14 | |
| | | | | llvm-svn: 23415 | |||||
* | Emit code that matches the incoming DAG pattern and checks predicates. | Chris Lattner | 2005-09-23 | 1 | -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 Lattner | 2005-09-23 | 1 | -0/+56 | |
| | | | | llvm-svn: 23413 | |||||
* | start filling in the switch stmt | Chris Lattner | 2005-09-23 | 1 | -1/+17 | |
| | | | | llvm-svn: 23412 | |||||
* | Fix a minor bug, add comments | Chris Lattner | 2005-09-16 | 1 | -2/+5 | |
| | | | | llvm-svn: 23370 | |||||
* | teach the type inference code how to infer types for instructions and node | Chris Lattner | 2005-09-15 | 1 | -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 lookup | Chris Lattner | 2005-09-15 | 1 | -6/+12 | |
| | | | | llvm-svn: 23368 | |||||
* | when parsing instructions remember information about the types taken and | Chris Lattner | 2005-09-15 | 1 | -3/+7 | |
| | | | | | | returned. llvm-svn: 23367 | |||||
* | Start parsing "Pattern" nodes | Chris Lattner | 2005-09-15 | 1 | -11/+52 | |
| | | | | llvm-svn: 23365 | |||||
* | rename a couple of methods, add structure for pattern parsing | Chris Lattner | 2005-09-15 | 1 | -15/+26 | |
| | | | | llvm-svn: 23364 | |||||
* | Verify that xform functions only occur in logical places | Chris Lattner | 2005-09-14 | 1 | -5/+14 | |
| | | | | llvm-svn: 23363 | |||||
* | Promote xform fns to be explicit nodes in result patterns, and clean off | Chris Lattner | 2005-09-14 | 1 | -1/+15 | |
| | | | | | | predicates since they will have already matched at this point. llvm-svn: 23362 | |||||
* | start building the instruction dest pattern correctly. Change the xform | Chris Lattner | 2005-09-14 | 1 | -8/+15 | |
| | | | | | | | functions to preserve the Record for the xform instead of making it into a function name. llvm-svn: 23361 | |||||
* | catch unnamed inputs | Chris Lattner | 2005-09-14 | 1 | -1/+9 | |
| | | | | llvm-svn: 23360 | |||||
* | check that there are no unexpected operands | Chris Lattner | 2005-09-14 | 1 | -3/+11 | |
| | | | | llvm-svn: 23359 | |||||
* | force all instruction operands to be named. | Chris Lattner | 2005-09-14 | 1 | -3/+0 | |
| | | | | llvm-svn: 23358 | |||||
* | fix a broke range check | Chris Lattner | 2005-09-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 23354 | |||||
* | Parse significantly more of the instruction pattern, now collecting and | Chris Lattner | 2005-09-14 | 1 | -46/+137 | |
| | | | | | | verifying information about the operands. llvm-svn: 23353 | |||||
* | Verify that set destinations occur first in the instruction operand list. | Chris Lattner | 2005-09-14 | 1 | -2/+28 | |
| | | | | llvm-svn: 23351 | |||||
* | remove some code that isn't ready for prime time | Chris Lattner | 2005-09-14 | 1 | -2/+2 | |
| | | | | llvm-svn: 23346 | |||||
* | Switch to a slightly more structured representation for instructions | Chris Lattner | 2005-09-14 | 1 | -6/+5 | |
| | | | | llvm-svn: 23345 | |||||
* | Add some more checking/verification code | Chris Lattner | 2005-09-14 | 1 | -2/+19 | |
| | | | | llvm-svn: 23344 | |||||
* | start parsing instructions into patterns, start doing many more checks of | Chris Lattner | 2005-09-14 | 1 | -4/+56 | |
| | | | | | | 'set's. llvm-svn: 23343 | |||||
* | don't emit the namespace inside the class! | Chris Lattner | 2005-09-13 | 1 | -2/+1 | |
| | | | | llvm-svn: 23341 | |||||
* | Emit code suitable for emission into the ISel class, allowing us to use/define | Chris Lattner | 2005-09-13 | 1 | -4/+4 | |
| | | | | | | methods. llvm-svn: 23340 | |||||
* | continue xform function parsing | Chris Lattner | 2005-09-13 | 1 | -1/+7 | |
| | | | | llvm-svn: 23338 | |||||
* | Start parsing node transformation information | Chris Lattner | 2005-09-13 | 1 | -6/+37 | |
| | | | | llvm-svn: 23337 | |||||
* | completely eliminate TreePattern::PatternType | Chris Lattner | 2005-09-13 | 1 | -64/+38 | |
| | | | | llvm-svn: 23335 | |||||
* | add an accessor to provide more checking | Chris Lattner | 2005-09-09 | 1 | -5/+5 | |
| | | | | llvm-svn: 23289 | |||||
* | use new accessors to simplify code. Add checking to make sure top-level instr | Chris Lattner | 2005-09-09 | 1 | -4/+12 | |
| | | | | | | definitions are void llvm-svn: 23288 | |||||
* | Fix incorrect comment | Chris Lattner | 2005-09-08 | 1 | -3/+2 | |
| | | | | llvm-svn: 23285 | |||||
* | Implement a complete type inference system for dag patterns, based on the | Chris Lattner | 2005-09-08 | 1 | -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 SDNodes | Chris Lattner | 2005-09-08 | 1 | -0/+40 | |
| | | | | llvm-svn: 23281 | |||||
* | use node info in the one place we currently use it | Chris Lattner | 2005-09-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 23280 | |||||
* | start parsing SDNode info records | Chris Lattner | 2005-09-08 | 1 | -0/+17 | |
| | | | | llvm-svn: 23279 | |||||
* | Keep names even when inlining. This allows us to realize that ADDI is: | Chris Lattner | 2005-09-08 | 1 | -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 in | Chris Lattner | 2005-09-07 | 1 | -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 |