summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Compile:Chris Lattner2006-05-121-1/+6
| | | | | | | | | | %tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. llvm-svn: 28244
* Fold shifts with undef operands.Chris Lattner2006-05-081-0/+7
| | | | llvm-svn: 28167
* constant fold sign_extend_inregChris Lattner2006-05-061-1/+9
| | | | llvm-svn: 28151
* Fix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll andChris Lattner2006-04-271-1/+29
| | | | | | PR748. llvm-svn: 27987
* JumpTable support! What this represents is working asm and jit support forNate Begeman2006-04-221-0/+26
| | | | | | | | x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. llvm-svn: 27947
* Implement folding of a bunch of binops with undefChris Lattner2006-04-201-0/+46
| | | | llvm-svn: 27863
* Make these predicates return true for bit_convert(buildvector)'s as well asChris Lattner2006-04-151-0/+8
| | | | | | buildvectors. llvm-svn: 27723
* Implement support for the formal_arguments node. To get this, targets ↵Chris Lattner2006-04-121-0/+1
| | | | | | shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload llvm-svn: 27604
* Don't memoize vloads in the load map! Don't memoize them anywhere here, letChris Lattner2006-04-121-2/+0
| | | | | | getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll llvm-svn: 27602
* Add code generator support for VSELECTChris Lattner2006-04-081-8/+9
| | | | llvm-svn: 27542
* Constant fold bitconvert(undef)Chris Lattner2006-04-041-0/+2
| | | | llvm-svn: 27391
* These entries already existChris Lattner2006-04-021-4/+0
| | | | llvm-svn: 27340
* Add some missing node namesChris Lattner2006-04-021-0/+9
| | | | llvm-svn: 27339
* Significantly improve handling of vectors that are live across basic blocks,Chris Lattner2006-03-311-2/+1
| | | | | | | handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. llvm-svn: 27278
* new nodeChris Lattner2006-03-281-0/+1
| | | | llvm-svn: 27231
* Add an assertionChris Lattner2006-03-281-0/+2
| | | | llvm-svn: 27228
OpenPOWER on IntegriCloud