summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/DAGISelEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Make the constant honest.Jim Laskey2007-01-261-1/+3
| | | | llvm-svn: 33557
* Files missing from LABEL check in.Jim Laskey2007-01-261-1/+10
| | | | llvm-svn: 33539
* Make tblgen error more useful. Patch by B. Scott MichelChris Lattner2007-01-171-1/+4
| | | | llvm-svn: 33295
* What should be the last unnecessary <iostream>s in the library.Bill Wendling2006-12-071-45/+44
| | | | llvm-svn: 32333
* Fix PR1001, patch by Nikhil Patil!Chris Lattner2006-11-201-1/+11
| | | | llvm-svn: 31880
* restore some 'magic' code that I removed: it is needed. Add comments explainingChris Lattner2006-11-141-10/+22
| | | | | | why. llvm-svn: 31743
* minimal hack to get patterns whose result type is iPTR to be selected.Chris Lattner2006-11-141-0/+16
| | | | llvm-svn: 31742
* remove some dead codeChris Lattner2006-11-141-9/+2
| | | | llvm-svn: 31740
* Add support for nodes that return iPTR.Chris Lattner2006-11-141-4/+6
| | | | llvm-svn: 31739
* changes to get ptr_rc to be accepted in patterns. This is needed for ppc preincChris Lattner2006-11-141-8/+22
| | | | | | stores. llvm-svn: 31738
* Fix a bug handling nodes with variable arguments. The code was fixed to assumeChris Lattner2006-11-141-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 Cheng2006-11-081-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 Cheng2006-11-081-4/+3
| | | | llvm-svn: 31570
* Parse PredicateOperand's. When an instruction takes one, have the generatedChris Lattner2006-11-041-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 instructionChris Lattner2006-11-041-14/+37
| | | | | | and pat pattern definitions. Codegen is not right for them yet. llvm-svn: 31444
* silence warningsChris Lattner2006-11-031-5/+1
| | | | llvm-svn: 31392
* Revert last patch which causes tblgen to segfault (why, I'm not sure).Reid Spencer2006-11-021-2/+6
| | | | llvm-svn: 31383
* For PR786:Reid Spencer2006-11-021-6/+2
| | | | | | Remove unused variables. llvm-svn: 31381
* Not meant to be checked in.Evan Cheng2006-11-011-5/+1
| | | | llvm-svn: 31334
* Add operand constraints to TargetInstrInfo.Evan Cheng2006-11-011-1/+5
| | | | llvm-svn: 31333
* Passing isel root and use operands to ComplexPattern functions, these should ↵Evan Cheng2006-10-161-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-directEvan Cheng2006-10-141-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 Cheng2006-10-121-1/+2
| | | | llvm-svn: 30923
* Use RemoveDeadNode to kill dead node.Evan Cheng2006-10-121-12/+4
| | | | llvm-svn: 30917
* Prior load folding check on chain operand was too strict. It requires theEvan Cheng2006-10-121-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 Cheng2006-10-111-25/+52
| | | | llvm-svn: 30890
* Special case tblgen generated code for patterns like (and X, 255) or (or X, 42).Chris Lattner2006-10-111-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 exactlyChris Lattner2006-10-111-92/+99
| | | | | | identical, this is just a refactoring. llvm-svn: 30868
* Predicate function on the node should be matched before its childrean' matchingEvan Cheng2006-10-091-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 Lattner2006-09-211-4/+13
| | | | | | This shrinks X86GenDAGISel by ~330 lines. llvm-svn: 30574
* Fit to 80 columns.Chris Lattner2006-09-211-13/+13
| | | | llvm-svn: 30572
* Allow PatFrag to be a leaf node.Evan Cheng2006-09-191-9/+17
| | | | llvm-svn: 30498
* Add result of a Xform to isel queue.Evan Cheng2006-09-191-0/+1
| | | | llvm-svn: 30497
* If multiple predicates are listed, they must all passChris Lattner2006-09-191-1/+1
| | | | llvm-svn: 30476
* There!Chris Lattner2006-09-181-2/+0
| | | | llvm-svn: 30473
* Fix Regression/TableGen/2006-09-18-LargeInt.tdChris Lattner2006-09-181-0/+2
| | | | llvm-svn: 30472
* Relax this check.Chris Lattner2006-09-141-7/+10
| | | | llvm-svn: 30381
* 1) With X86 lowering change, the following can no longer happen sinceEvan Cheng2006-09-111-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 Cheng2006-09-081-5/+4
| | | | | | with a predicate (+1). llvm-svn: 30180
* Use compiler.h instead of hand rolling our own macroChris Lattner2006-08-271-9/+4
| | | | llvm-svn: 29913
* Do not emit getTargetNode() and SelectNodeTo() which takes more than 3Evan Cheng2006-08-271-42/+71
| | | | | | SDOperand arguments. Use the variants which take an array and number instead. llvm-svn: 29906
* SelectNodeTo now returns a SDNode*.Evan Cheng2006-08-261-1/+1
| | | | llvm-svn: 29901
* Minor getCopyToReg() call change.Evan Cheng2006-08-261-3/+2
| | | | llvm-svn: 29900
* Select() no longer require Result operand by reference.Evan Cheng2006-08-261-44/+18
| | | | llvm-svn: 29898
* Remove dead code.Evan Cheng2006-08-261-2/+0
| | | | llvm-svn: 29897
* A bit more clean up.Evan Cheng2006-08-261-16/+13
| | | | llvm-svn: 29893
* - Clean up tablegen dag isel generator code.Evan Cheng2006-08-261-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 Cheng2006-08-161-4/+1
| | | | llvm-svn: 29726
* The generated runloop shouldn't require Select to update 'Result'. In factChris Lattner2006-08-151-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 Lattner2006-08-151-1/+1
| | | | llvm-svn: 29712
OpenPOWER on IntegriCloud