Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | add anew method | Chris Lattner | 2005-08-21 | 1 | -0/+10 | |
| | | | | llvm-svn: 22957 | |||||
* | add a method | Chris Lattner | 2005-08-21 | 1 | -0/+9 | |
| | | | | llvm-svn: 22955 | |||||
* | add a method | Chris Lattner | 2005-08-21 | 1 | -0/+9 | |
| | | | | llvm-svn: 22949 | |||||
* | Add support for TargetGlobalAddress nodes | Chris Lattner | 2005-08-19 | 1 | -1/+14 | |
| | | | | llvm-svn: 22938 | |||||
* | Fix a bug in previous commit | Chris Lattner | 2005-08-19 | 1 | -1/+2 | |
| | | | | llvm-svn: 22936 | |||||
* | Print physreg register nodes with target names (e.g. F1) instead of numbers | Chris Lattner | 2005-08-19 | 1 | -1/+5 | |
| | | | | llvm-svn: 22934 | |||||
* | Fix VC++ precedence warning. | Jeff Cohen | 2005-08-19 | 1 | -1/+1 | |
| | | | | llvm-svn: 22902 | |||||
* | Add support for target DAG nodes that take 4 operands, such as PowerPC's | Nate Begeman | 2005-08-18 | 1 | -0/+8 | |
| | | | | | | rlwinm. llvm-svn: 22856 | |||||
* | Fix printing of VTSDNodes | Chris Lattner | 2005-08-18 | 1 | -0/+3 | |
| | | | | llvm-svn: 22853 | |||||
* | Move the code dependency for MathExtras.h from SelectionDAGNodes.h. | Jim Laskey | 2005-08-17 | 1 | -1/+21 | |
| | | | | | | Added some class dividers in SelectionDAG.cpp. llvm-svn: 22841 | |||||
* | Culling out use of unions for converting FP to bits and vice versa. | Jim Laskey | 2005-08-17 | 1 | -14/+3 | |
| | | | | llvm-svn: 22838 | |||||
* | Fix a bug in RemoveDeadNodes where it would crash when its "optional" | Chris Lattner | 2005-08-17 | 1 | -1/+77 | |
| | | | | | | | | argument is not specified. Implement ReplaceAllUsesWith. llvm-svn: 22834 | |||||
* | add a new TargetConstant node | Chris Lattner | 2005-08-17 | 1 | -1/+19 | |
| | | | | llvm-svn: 22813 | |||||
* | Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef) | Chris Lattner | 2005-08-16 | 1 | -2/+20 | |
| | | | | | | | | | | | | | | used to tack a register number onto the node. Instead of doing this, make a new node, RegisterSDNode, which is a leaf containing a register number. These three operations just become normal DAG nodes now, instead of requiring special handling. Note that with this change, it is no longer correct to make illegal CopyFromReg/CopyToReg nodes. The legalizer will not touch them, and this is bad, so don't do it. :) llvm-svn: 22806 | |||||
* | Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nasty | Nate Begeman | 2005-08-16 | 1 | -1/+7 | |
| | | | | | | | fixme from the PowerPC backend. Emit slightly better code for legalizing select_cc. llvm-svn: 22805 | |||||
* | Allow passing a dag into dump and getOperationName. If one is available | Chris Lattner | 2005-08-16 | 1 | -9/+21 | |
| | | | | | | | when printing a node, use it to render target operations with their target instruction name instead of "<<unknown>>". llvm-svn: 22804 | |||||
* | Add some methods for dag->dag isel. | Chris Lattner | 2005-08-16 | 1 | -18/+58 | |
| | | | | | | Split RemoveNodeFromCSEMaps out of DeleteNodesIfDead to do it. llvm-svn: 22801 | |||||
* | Remove an unncessary argument to SimplifySelectCC and add an additional | Nate Begeman | 2005-08-13 | 1 | -8/+10 | |
| | | | | | | assert when creating a select_cc node. llvm-svn: 22780 | |||||
* | Fix the fabs regression on x86 by abstracting the select_cc optimization | Nate Begeman | 2005-08-13 | 1 | -68/+83 | |
| | | | | | | | out into SimplifySelectCC. This allows both ISD::SELECT and ISD::SELECT_CC to use the same set of simplifying folds. llvm-svn: 22779 | |||||
* | implement a couple of simple shift foldings. | Chris Lattner | 2005-08-12 | 1 | -0/+18 | |
| | | | | | | e.g. (X & 7) >> 3 -> 0 llvm-svn: 22774 | |||||
* | Add a select_cc optimization for recognizing abs(int). This speeds up an | Nate Begeman | 2005-08-11 | 1 | -0/+16 | |
| | | | | | | integer MPEG encoding loop by a factor of two. llvm-svn: 22758 | |||||
* | Some SELECT_CC cleanups: | Nate Begeman | 2005-08-11 | 1 | -53/+59 | |
| | | | | | | | | | | | | 1. move assertions for node creation to getNode() 2. legalize the values returned in ExpandOp immediately 3. Move select_cc optimizations from SELECT's getNode() to SELECT_CC's, allowing them to be cleaned up significantly. This paves the way to pick up additional optimizations on SELECT_CC, such as sum-of-absolute-differences. llvm-svn: 22757 | |||||
* | Add new node, SELECT_CC. This node is for targets that don't natively | Nate Begeman | 2005-08-10 | 1 | -2/+1 | |
| | | | | | | implement SELECT. llvm-svn: 22755 | |||||
* | Fix an oversight that may be causing PR617. | Chris Lattner | 2005-08-10 | 1 | -4/+13 | |
| | | | | llvm-svn: 22753 | |||||
* | Fix spelling, fix some broken canonicalizations by my last patch | Chris Lattner | 2005-08-09 | 1 | -12/+11 | |
| | | | | llvm-svn: 22734 | |||||
* | add cc nodes to the AllNodes list so they show up in Graphviz output | Chris Lattner | 2005-08-09 | 1 | -1/+3 | |
| | | | | llvm-svn: 22731 | |||||
* | Eliminate the SetCCSDNode in favor of a CondCodeSDNode class. This pulls the | Chris Lattner | 2005-08-09 | 1 | -128/+138 | |
| | | | | | | | | CC out of the SetCC operation, making SETCC a standard ternary operation and CC's a standard DAG leaf. This will make it possible for other node to use CC's as operands in the future... llvm-svn: 22728 | |||||
* | add a small simplification that can be exposed after promotion/expansion | Chris Lattner | 2005-08-07 | 1 | -2/+7 | |
| | | | | llvm-svn: 22691 | |||||
* | Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's. | Chris Lattner | 2005-08-05 | 1 | -0/+5 | |
| | | | | llvm-svn: 22679 | |||||
* | Update to use the new MathExtras.h support for log2 computation. | Chris Lattner | 2005-08-02 | 1 | -14/+6 | |
| | | | | | | Patch contributed by Jim Laskey! llvm-svn: 22594 | |||||
* | Eliminate all remaining tabs and trailing spaces. | Jeff Cohen | 2005-07-27 | 1 | -4/+4 | |
| | | | | llvm-svn: 22523 | |||||
* | Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. | Chris Lattner | 2005-07-10 | 1 | -68/+38 | |
| | | | | | | | | | This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. llvm-svn: 22367 | |||||
* | Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNode | Chris Lattner | 2005-07-10 | 1 | -42/+35 | |
| | | | | llvm-svn: 22366 | |||||
* | Introduce a new VTSDNode class with the ultimate goal of eliminating the | Chris Lattner | 2005-07-10 | 1 | -62/+79 | |
| | | | | | | | | MVTSDNode class. This class is used to provide an operand to operators that require an extra type. We start by converting FP_ROUND_INREG and SIGN_EXTEND_INREG over to using it. llvm-svn: 22364 | |||||
* | restore old srcValueNode behavior and try to to work around it | Andrew Lenharth | 2005-06-29 | 1 | -0/+2 | |
| | | | | llvm-svn: 22315 | |||||
* | tracking the instructions causing loads and stores provides more information ↵ | Andrew Lenharth | 2005-06-29 | 1 | -2/+0 | |
| | | | | | | than just the pointer being loaded or stored llvm-svn: 22311 | |||||
* | Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for | Nate Begeman | 2005-06-16 | 1 | -2/+7 | |
| | | | | | | | integer types. Add a couple checks to not perform these kinds of transform on floating point values. llvm-svn: 22228 | |||||
* | Add some simplifications for MULH[SU]. This allows us to compile this: | Chris Lattner | 2005-05-15 | 1 | -0/+12 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret llvm-svn: 22044 | |||||
* | remove special case hacks for readport/readio from the binary operator | Chris Lattner | 2005-05-14 | 1 | -6/+1 | |
| | | | | | | codepath llvm-svn: 22019 | |||||
* | Implement fixme's by memoizing nodes. | Chris Lattner | 2005-05-14 | 1 | -9/+21 | |
| | | | | llvm-svn: 22018 | |||||
* | Turn this into a wrapper for a simpler version of getNode. | Chris Lattner | 2005-05-14 | 1 | -8/+7 | |
| | | | | llvm-svn: 22016 | |||||
* | Eliminate special purpose hacks for dynamic_stack_alloc. | Chris Lattner | 2005-05-14 | 1 | -13/+1 | |
| | | | | llvm-svn: 22015 | |||||
* | Use the general mechanism for creating multi-value nodes instead of using | Chris Lattner | 2005-05-14 | 1 | -34/+30 | |
| | | | | | | special case hacks. llvm-svn: 22014 | |||||
* | Wrap long line, actually add node to the graph. | Chris Lattner | 2005-05-14 | 1 | -1/+3 | |
| | | | | llvm-svn: 22011 | |||||
* | add a getNode() version that allows construction of any node type. | Chris Lattner | 2005-05-14 | 1 | -9/+33 | |
| | | | | llvm-svn: 22009 | |||||
* | Handle TAILCALL node | Chris Lattner | 2005-05-13 | 1 | -0/+1 | |
| | | | | llvm-svn: 21957 | |||||
* | fix a bad typeo | Chris Lattner | 2005-05-12 | 1 | -2/+2 | |
| | | | | llvm-svn: 21917 | |||||
* | rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN. | Chris Lattner | 2005-05-12 | 1 | -6/+6 | |
| | | | | llvm-svn: 21915 | |||||
* | handle a common case generated by the uint64 -> FP code path better | Chris Lattner | 2005-05-12 | 1 | -1/+17 | |
| | | | | llvm-svn: 21888 | |||||
* | Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C | Chris Lattner | 2005-05-12 | 1 | -6/+7 | |
| | | | | llvm-svn: 21882 |