Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Make the constant honest. | Jim Laskey | 2007-01-26 | 1 | -1/+3 | |
| | | | | llvm-svn: 33557 | |||||
* | Files missing from LABEL check in. | Jim Laskey | 2007-01-26 | 1 | -1/+10 | |
| | | | | llvm-svn: 33539 | |||||
* | Make tblgen error more useful. Patch by B. Scott Michel | Chris Lattner | 2007-01-17 | 1 | -1/+4 | |
| | | | | llvm-svn: 33295 | |||||
* | What should be the last unnecessary <iostream>s in the library. | Bill Wendling | 2006-12-07 | 1 | -45/+44 | |
| | | | | llvm-svn: 32333 | |||||
* | Fix PR1001, patch by Nikhil Patil! | Chris Lattner | 2006-11-20 | 1 | -1/+11 | |
| | | | | llvm-svn: 31880 | |||||
* | restore some 'magic' code that I removed: it is needed. Add comments explaining | Chris Lattner | 2006-11-14 | 1 | -10/+22 | |
| | | | | | | why. llvm-svn: 31743 | |||||
* | minimal hack to get patterns whose result type is iPTR to be selected. | Chris Lattner | 2006-11-14 | 1 | -0/+16 | |
| | | | | llvm-svn: 31742 | |||||
* | remove some dead code | Chris Lattner | 2006-11-14 | 1 | -9/+2 | |
| | | | | llvm-svn: 31740 | |||||
* | Add support for nodes that return iPTR. | Chris Lattner | 2006-11-14 | 1 | -4/+6 | |
| | | | | llvm-svn: 31739 | |||||
* | changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc | Chris Lattner | 2006-11-14 | 1 | -8/+22 | |
| | | | | | | stores. llvm-svn: 31738 | |||||
* | Fix a bug handling nodes with variable arguments. The code was fixed to assume | Chris Lattner | 2006-11-14 | 1 | -8/+15 | |
| | | | | | | | | | | | | that there were two input operands before the variable operand portion. This *happened* to be true for all call instructions, which took a chain and a destination, but was not true for the PPC BCTRL instruction, whose destination is implicit. Making this code more general allows elimination of the custom selection logic for BCTRL. llvm-svn: 31732 | |||||
* | Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD, | Evan Cheng | 2006-11-08 | 1 | -46/+35 | |
| | | | | | | | | X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed store). llvm-svn: 31575 | |||||
* | Always pass the root node to ComplexPattern isel matching function. | Evan Cheng | 2006-11-08 | 1 | -4/+3 | |
| | | | | llvm-svn: 31570 | |||||
* | Parse PredicateOperand's. When an instruction takes one, have the generated | Chris Lattner | 2006-11-04 | 1 | -6/+74 | |
| | | | | | | | isel fill in the instruction operands with the 'execute always' value automatically. llvm-svn: 31448 | |||||
* | First steps to getting PredicateOperand's to work. This handles instruction | Chris Lattner | 2006-11-04 | 1 | -14/+37 | |
| | | | | | | and pat pattern definitions. Codegen is not right for them yet. llvm-svn: 31444 | |||||
* | silence warnings | Chris Lattner | 2006-11-03 | 1 | -5/+1 | |
| | | | | llvm-svn: 31392 | |||||
* | Revert last patch which causes tblgen to segfault (why, I'm not sure). | Reid Spencer | 2006-11-02 | 1 | -2/+6 | |
| | | | | llvm-svn: 31383 | |||||
* | For PR786: | Reid Spencer | 2006-11-02 | 1 | -6/+2 | |
| | | | | | | Remove unused variables. llvm-svn: 31381 | |||||
* | Not meant to be checked in. | Evan Cheng | 2006-11-01 | 1 | -5/+1 | |
| | | | | llvm-svn: 31334 | |||||
* | Add operand constraints to TargetInstrInfo. | Evan Cheng | 2006-11-01 | 1 | -1/+5 | |
| | | | | llvm-svn: 31333 | |||||
* | Passing isel root and use operands to ComplexPattern functions, these should ↵ | Evan Cheng | 2006-10-16 | 1 | -14/+28 | |
| | | | | | | do the usual load folding checks as well. llvm-svn: 30972 | |||||
* | When checking if a load can be folded, we check if there is any non-direct | Evan Cheng | 2006-10-14 | 1 | -10/+12 | |
| | | | | | | | way to reach the load via any nodes that would be folded. Start from the root of the matched sub-tree. llvm-svn: 30956 | |||||
* | Really remove dead nodes from isel queue. | Evan Cheng | 2006-10-12 | 1 | -1/+2 | |
| | | | | llvm-svn: 30923 | |||||
* | Use RemoveDeadNode to kill dead node. | Evan Cheng | 2006-10-12 | 1 | -12/+4 | |
| | | | | llvm-svn: 30917 | |||||
* | Prior load folding check on chain operand was too strict. It requires the | Evan Cheng | 2006-10-12 | 1 | -3/+43 | |
| | | | | | | | | | chain operand to point to the load being folded. Now we relax this, traversing up the chain, if it doesn't reach the load, then it's ok. We will create a TokenFactor (of all the chain operands and the load's chain) to capture all the control flow dependencies. llvm-svn: 30897 | |||||
* | Added properties such as SDNPHasChain to ComplexPattern. | Evan Cheng | 2006-10-11 | 1 | -25/+52 | |
| | | | | llvm-svn: 30890 | |||||
* | Special case tblgen generated code for patterns like (and X, 255) or (or X, 42). | Chris Lattner | 2006-10-11 | 1 | -1/+36 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The dag/inst combiners often 'simplify' the masked value based on whether or not the bits are live or known zero/one. This is good and dandy, but often causes special case patterns to fail, such as alpha's CMPBGE pattern, which looks like "(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))". Here the pattern for (and X, 255) should match actual dags like (and X, 254) if the dag combiner proved that the missing bits are already zero (one for 'or'). For CodeGen/Alpha/cmpbge.ll:test2 for example, this results in: sll $16,1,$0 cmpbge $0,$17,$0 ret $31,($26),1 instead of: sll $16,1,$0 and $0,254,$0 and $17,255,$1 cmpule $1,$0,$0 ret $31,($26),1 ... and requires no target-specific code. llvm-svn: 30871 | |||||
* | Split some code out into a new method. The generated code is exactly | Chris Lattner | 2006-10-11 | 1 | -92/+99 | |
| | | | | | | identical, this is just a refactoring. llvm-svn: 30868 | |||||
* | Predicate function on the node should be matched before its childrean' matching | Evan Cheng | 2006-10-09 | 1 | -4/+4 | |
| | | | | | | | code. This is especially important now matching ISD::LOAD also requires a Predicate_Load call. llvm-svn: 30845 | |||||
* | don't allow 'imm' or specific imms, like '1' on the LHS of a binop. | Chris Lattner | 2006-09-21 | 1 | -4/+13 | |
| | | | | | | This shrinks X86GenDAGISel by ~330 lines. llvm-svn: 30574 | |||||
* | Fit to 80 columns. | Chris Lattner | 2006-09-21 | 1 | -13/+13 | |
| | | | | llvm-svn: 30572 | |||||
* | Allow PatFrag to be a leaf node. | Evan Cheng | 2006-09-19 | 1 | -9/+17 | |
| | | | | llvm-svn: 30498 | |||||
* | Add result of a Xform to isel queue. | Evan Cheng | 2006-09-19 | 1 | -0/+1 | |
| | | | | llvm-svn: 30497 | |||||
* | If multiple predicates are listed, they must all pass | Chris Lattner | 2006-09-19 | 1 | -1/+1 | |
| | | | | llvm-svn: 30476 | |||||
* | There! | Chris Lattner | 2006-09-18 | 1 | -2/+0 | |
| | | | | llvm-svn: 30473 | |||||
* | Fix Regression/TableGen/2006-09-18-LargeInt.td | Chris Lattner | 2006-09-18 | 1 | -0/+2 | |
| | | | | llvm-svn: 30472 | |||||
* | Relax this check. | Chris Lattner | 2006-09-14 | 1 | -7/+10 | |
| | | | | llvm-svn: 30381 | |||||
* | 1) With X86 lowering change, the following can no longer happen since | Evan Cheng | 2006-09-11 | 1 | -19/+16 | |
| | | | | | | | | | | | | | | | | | | | | | the branch's chain is also produced by cmp. [ch, r : ld] ^ ^ | | [XX]--/ \- [flag : cmp] ^ ^ | | \---[br flag]- Remove an isel check which prevents loads from being folded into cmp / test instructions. 2) Whenever possible, delete a selected node to allow more load folding opportunities. Note not all nodes can be deleted after it has been selected. Some may have simply morphed; some have not changed at all (e.g. EntryToken). llvm-svn: 30242 | |||||
* | Generated isel should favors explicit constant operand (+2) over an operand ↵ | Evan Cheng | 2006-09-08 | 1 | -5/+4 | |
| | | | | | | with a predicate (+1). llvm-svn: 30180 | |||||
* | Use compiler.h instead of hand rolling our own macro | Chris Lattner | 2006-08-27 | 1 | -9/+4 | |
| | | | | llvm-svn: 29913 | |||||
* | Do not emit getTargetNode() and SelectNodeTo() which takes more than 3 | Evan Cheng | 2006-08-27 | 1 | -42/+71 | |
| | | | | | | SDOperand arguments. Use the variants which take an array and number instead. llvm-svn: 29906 | |||||
* | SelectNodeTo now returns a SDNode*. | Evan Cheng | 2006-08-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 29901 | |||||
* | Minor getCopyToReg() call change. | Evan Cheng | 2006-08-26 | 1 | -3/+2 | |
| | | | | llvm-svn: 29900 | |||||
* | Select() no longer require Result operand by reference. | Evan Cheng | 2006-08-26 | 1 | -44/+18 | |
| | | | | llvm-svn: 29898 | |||||
* | Remove dead code. | Evan Cheng | 2006-08-26 | 1 | -2/+0 | |
| | | | | llvm-svn: 29897 | |||||
* | A bit more clean up. | Evan Cheng | 2006-08-26 | 1 | -16/+13 | |
| | | | | llvm-svn: 29893 | |||||
* | - Clean up tablegen dag isel generator code. | Evan Cheng | 2006-08-26 | 1 | -235/+238 | |
| | | | | | | | | | | | | | - Clean up the code generated by tablegen: * AddToISelQueue now takes one argument. * ComplexPattern matching condition can now be shared. * Eliminate passing unnecessary arguments to emit routines. * Eliminate some unneeded SDOperand declarations in select routines. * Other minor clean ups. - This reduces foot print slightly: X86ISelDAGToDAG.o is reduced from 971k to 823k. llvm-svn: 29892 | |||||
* | SelectNodeTo() may return a SDOperand that is different from the input. | Evan Cheng | 2006-08-16 | 1 | -4/+1 | |
| | | | | llvm-svn: 29726 | |||||
* | The generated runloop shouldn't require Select to update 'Result'. In fact | Chris Lattner | 2006-08-15 | 1 | -3/+6 | |
| | | | | | | we'd like to remove result entirely. llvm-svn: 29713 | |||||
* | allow Select to return the node being selected if RAU isn't needed. | Chris Lattner | 2006-08-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 29712 |