summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* getPreIndexedLoad -> getIndexedLoad.Evan Cheng2006-10-261-21/+7
| | | | llvm-svn: 31209
* Trivial patch to speed up legalizing common i64 constants.Chris Lattner2006-10-171-0/+7
| | | | llvm-svn: 31020
* Reflect MemOpAddrMode change; added a helper to create pre-indexed load.Evan Cheng2006-10-171-4/+68
| | | | llvm-svn: 31016
* Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty ↵Jim Laskey2006-10-171-1/+1
| | | | | | optimization. llvm-svn: 31009
* When SimplifySetCC was moved to the DAGCombiner, it was never removed fromChris Lattner2006-10-141-154/+17
| | | | | | | | | | SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG. Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into a new FoldSetCC method which can be used by getNode() and SimplifySetCC. This fixes obscure bugs. llvm-svn: 30952
* Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1',Chris Lattner2006-10-131-2/+2
| | | | | | which is undefined. "0" isn't a power of 2. llvm-svn: 30947
* Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.Evan Cheng2006-10-131-30/+67
| | | | llvm-svn: 30945
* Add RemoveDeadNode to remove a dead node and its (potentially) dead operands.Evan Cheng2006-10-121-0/+33
| | | | llvm-svn: 30916
* Naming consistency.Evan Cheng2006-10-111-2/+2
| | | | llvm-svn: 30878
* Jimptables working again on alpha.Andrew Lenharth2006-10-111-1/+1
| | | | | | As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. llvm-svn: 30873
* FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper ↵Evan Cheng2006-10-111-0/+9
| | | | | | SelectionDAGCSEMap ID. llvm-svn: 30866
* SDNode::dump should also print out extension type and VT.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30860
* Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.Evan Cheng2006-10-091-35/+56
| | | | llvm-svn: 30844
* Add getStore() helper function to create ISD::STORE nodes.Evan Cheng2006-10-051-1/+16
| | | | llvm-svn: 30758
* Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add anEvan Cheng2006-10-041-11/+14
| | | | | | extra operand to LOADX to specify the exact value extension type. llvm-svn: 30714
* Comments on JumpTablenessAndrew Lenharth2006-09-261-0/+1
| | | | llvm-svn: 30615
* Fold extract_element(cst) to cstChris Lattner2006-09-191-2/+8
| | | | llvm-svn: 30478
* Minor speedup for legalize by avoiding some malloc trafficChris Lattner2006-09-191-0/+9
| | | | llvm-svn: 30477
* Added support for machine specific constantpool values. These are useful forEvan Cheng2006-09-121-1/+29
| | | | | | representing expressions that can only be resolved at link time, etc. llvm-svn: 30278
* Implement the fpowi now by lowering to a libcallChris Lattner2006-09-091-0/+1
| | | | llvm-svn: 30225
* Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make ↵Evan Cheng2006-08-291-15/+0
| | | | | | it a static method of SelectionDAG. llvm-svn: 29951
* Eliminate SelectNodeTo() and getTargetNode() variants which take more thanEvan Cheng2006-08-271-254/+12
| | | | | | | 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. llvm-svn: 29905
* SelectNodeTo now returns a SDNode*.Evan Cheng2006-08-261-74/+74
| | | | llvm-svn: 29901
* minor changes.Chris Lattner2006-08-161-18/+19
| | | | llvm-svn: 29740
* Use the appropriate typedefChris Lattner2006-08-161-2/+1
| | | | llvm-svn: 29730
* Start using SDVTList more consistentlyChris Lattner2006-08-151-66/+66
| | | | llvm-svn: 29711
* add a new SDVTList type and new SelectionDAG::getVTList methods to streamlineChris Lattner2006-08-151-68/+79
| | | | | | the creation of canonical VTLists. llvm-svn: 29709
* Add a new getNode() method that takes a pointer to an already-intern'd listChris Lattner2006-08-141-78/+70
| | | | | | | of value-type nodes. This avoids having to do mallocs for std::vectors of valuetypes when a node returns more than one type. llvm-svn: 29685
* remove SelectionDAG::InsertISelMapEntry, it is deadChris Lattner2006-08-141-9/+0
| | | | llvm-svn: 29677
* Add code to resize the CSEMap hash table. This doesn't speedup codegen ofChris Lattner2006-08-141-0/+1
| | | | | | kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :) llvm-svn: 29675
* Add the actual constant to the hash for ConstantPool nodes. Thanks toChris Lattner2006-08-141-0/+1
| | | | | | Rafael Espindola for pointing this out. llvm-svn: 29669
* Remove 8 more std::map's.Chris Lattner2006-08-111-92/+40
| | | | llvm-svn: 29631
* Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,Chris Lattner2006-08-111-88/+57
| | | | | | RegNodes, and ValueNodes maps into the CSEMap. llvm-svn: 29626
* eliminate the NullaryOps map, use CSEMap instead.Chris Lattner2006-08-111-22/+18
| | | | llvm-svn: 29621
* Change one ReplaceAllUsesWith method to take an array of operands to replaceChris Lattner2006-08-111-4/+2
| | | | | | instead of a vector of operands. llvm-svn: 29616
* Start eliminating temporary vectors used to create DAG nodes. Instead, passChris Lattner2006-08-081-128/+35
| | | | | | | | | | | | | | | | | | | in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. llvm-svn: 29566
* Eliminate some malloc traffic by allocating vectors on the stack. Change someChris Lattner2006-08-081-61/+44
| | | | | | | | | method that took std::vector<SDOperand> to take a pointer to a first operand and #operands. This speeds up isel on kc++ by about 3%. llvm-svn: 29561
* Revamp the "CSEMap" datastructure used in the SelectionDAG class. ThisChris Lattner2006-08-071-312/+278
| | | | | | | | | | | eliminates a bunch of std::map's in the SelectionDAG, replacing them with a home-grown hashtable. This is still a work in progress: not all the maps have been moved over and the hashtable never resizes. That said, this still speeds up llc 20% on kimwitu++ with -fast -regalloc=local using a release build. llvm-svn: 29550
* Clear TopOrder before assigning topological order. Some clean ups.Evan Cheng2006-08-071-1/+3
| | | | llvm-svn: 29546
* Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, whichChris Lattner2006-08-041-50/+32
| | | | | | also make it simpler. llvm-svn: 29524
* - Change AssignTopologicalOrder to return vector of SDNode* by reference.Evan Cheng2006-08-021-16/+22
| | | | | | - Tweak implementation to avoid using std::map. llvm-svn: 29479
* Added AssignTopologicalOrder() to assign each node an unique id based on ↵Evan Cheng2006-08-011-2/+38
| | | | | | their topological order. llvm-svn: 29431
* Remove InFlightSet hack. No longer needed.Evan Cheng2006-07-281-14/+0
| | | | llvm-svn: 29373
* AssignNodeIds should return unsigned.Evan Cheng2006-07-271-2/+2
| | | | llvm-svn: 29343
* AssignNodeIds assign each node in the DAG an unique id.Evan Cheng2006-07-271-0/+12
| | | | llvm-svn: 29337
* Add an out-of-line virtual method for the sdnode class to give it a home.Chris Lattner2006-07-191-0/+4
| | | | llvm-svn: 29192
* Ugly hack! Add helper functions InsertInFlightSetEntry andEvan Cheng2006-06-291-0/+14
| | | | | | | RemoveInFlightSetEntry. They are used in place of direct set operators to reduce instruction selection function stack size. llvm-svn: 28987
* Fix CodeGen/Generic/2006-06-28-SimplifySetCCCrash.llChris Lattner2006-06-281-6/+4
| | | | llvm-svn: 28965
* Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallToChris Lattner2006-05-161-0/+1
| | | | | | produce it. llvm-svn: 28338
* remove dead varsChris Lattner2006-05-121-2/+1
| | | | llvm-svn: 28254
OpenPOWER on IntegriCloud