Chris Lattner
6a5b6d7633
Add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26141 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-13 08:54:46 +00:00
Evan Cheng
fae9f1cb34
Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gcc
...
problem where it inline the map insertion call too aggressively. Before this
change it was producing a frame size of 24k for Select_store(), now it's down
to 10k (by calling this method rather than calling the map insertion operator).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26094 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 22:11:03 +00:00
Evan Cheng
6ae46c4c87
More changes to reduce frame size.
...
Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This
prevents them from being inlined.
Change getTargetNode() so they return SDNode * instead of SDOperand to prevent
copying. It should also help compilation speed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26083 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 07:15:23 +00:00
Evan Cheng
b8973bd8f5
Allow the specification of explicit alignments for constant pool entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-31 22:23:14 +00:00
Evan Cheng
19f3416d1c
One more getTargetNode() variant shouldn't hurt...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25816 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-30 07:47:47 +00:00
Chris Lattner
ac0d723825
Make ConstantFP legalize into TargetConstantFP like other leaf nodes do. Allow
...
targets to register custom legalizers for ConstantFP in case there isn't a
fixed list of constants that can be generated. On some architectures (ia64?)
all fp immediates are legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25769 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-29 06:24:40 +00:00
Chris Lattner
2128a2f76c
remove the getBR2Way_CC method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25768 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-29 06:01:13 +00:00
Chris Lattner
9b88361bef
add another variant
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25743 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28 10:08:58 +00:00
Chris Lattner
b9aff659e8
Add some methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25741 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28 09:32:01 +00:00
Chris Lattner
253a87d667
The 'target-independent' ISD::CALL isn't. Nuke it, making way for Nate's
...
future work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25720 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28 00:18:27 +00:00
Nate Begeman
acc398c195
First part of bug 680:
...
Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-25 18:21:52 +00:00
Andrew Lenharth
7cf11b4ab2
another couple selects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25551 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 21:51:14 +00:00
Andrew Lenharth
8c6f1ee5aa
another selectto
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25548 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 20:59:12 +00:00
Evan Cheng
4e4937836e
Yet another getTargetNode() variant. I promise one of these days I'll fix
...
tblgen so this is unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25380 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-17 00:32:38 +00:00
Evan Cheng
909addffc3
New getNode() variants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25156 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-09 18:29:18 +00:00
Jim Laskey
b2efb853f0
Applied some recommend changes from sabre. The dominate one beginning "let the
...
pass manager do it's thing." Fixes crash when compiling -g files and suppresses
dwarf statements if no debug info is present.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25100 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-04 22:28:25 +00:00
Chris Lattner
002d83418a
remove a dead node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24966 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-22 21:16:35 +00:00
Duraid Madina
3cb51f9754
i need to do this to take over the earth
...
when I take over the earth, sabre will be happy because i'll stop asking
him silly questions!!!!!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24949 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-22 07:02:51 +00:00
Chris Lattner
bc149b2c98
Add an accessor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24831 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-18 21:00:53 +00:00
Evan Cheng
05a4c35494
Yet another variant of getTargetNode().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24758 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-17 01:44:51 +00:00
Evan Cheng
7038daf342
Added new getNode and getTargetNode variants for X86 stores.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24653 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-10 00:37:58 +00:00
Evan Cheng
ab24ed2a32
Added patterns for ADD8rm, etc. These fold load operands. e.g. addb 4(%esp), %al
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24648 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-09 22:48:48 +00:00
Evan Cheng
0fc7198890
Added support for ComplexPattern. These are patterns that require C++ pattern
...
matching code that is not currently auto-generated by tblgen, e.g. X86
addressing mode. Selection routines for complex patterns can return multiple operands, e.g. X86 addressing mode returns 4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24634 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-08 02:00:36 +00:00
Evan Cheng
66a48bbc35
Teach tblgen to accept register source operands in patterns, e.g.
...
def SHL8rCL : I<0xD2, MRM4r, (ops R8 :$dst, R8 :$src),
"shl{b} {%cl, $dst|$dst, %CL}",
[(set R8:$dst, (shl R8:$src, CL))]>, Imp<[CL],[]>;
This generates a CopyToReg operand and added its 2nd result to the shl as
a flag operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24557 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-01 00:18:45 +00:00
Chris Lattner
eb19e40efb
Make SelectNodeTo return N
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24548 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 22:45:14 +00:00
Evan Cheng
14229bb636
Fixed a bug introduced by my last commit: TargetGlobalValues should key on
...
GlobalValue * and index pair. Update getGlobalAddress() for symmetry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24524 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 02:49:21 +00:00
Evan Cheng
61ca74bc3a
Added an index field to GlobalAddressSDNode so it can represent X+12, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24523 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 02:04:11 +00:00
Chris Lattner
47725d059b
Add support for a new STRING and LOCATION node for line number support, patch
...
contributed by Daniel Berlin, with a few cleanups here and there by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24512 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-29 06:15:39 +00:00
Chris Lattner
8f3366ad27
Add two new construction methods, patch by Evan Cheng
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24417 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-19 01:42:10 +00:00
Nate Begeman
5fbb5d2459
Teach LLVM how to scalarize packed types. Currently, this only works on
...
packed types with an element count of 1, although more generic support is
coming. This allows LLVM to turn the following code:
void %foo(<1 x float> * %a) {
entry:
%tmp1 = load <1 x float> * %a;
%tmp2 = add <1 x float> %tmp1, %tmp1
store <1 x float> %tmp2, <1 x float> *%a
ret void
}
Into:
_foo:
lfs f0, 0(r3)
fadds f0, f0, f0
stfs f0, 0(r3)
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-19 00:36:38 +00:00
Chris Lattner
b80e2be889
Switch the allnodes list from a vector of pointers to an ilist of nodes.
...
This eliminates the vector, allows constant time removal of a node from
a graph, and makes iteration over the all nodes list stable when adding
nodes to the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24262 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-09 23:46:43 +00:00
Chris Lattner
109654fae9
Change the ValueList array for each node to be shared instead of individually
...
allocated. Further, in the common case where a node has a single value, just
reference an element from a small array. This is a small compile-time wi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24250 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-08 23:30:11 +00:00
Chris Lattner
f0e80cf909
adjust itf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24242 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-08 18:52:57 +00:00
Chris Lattner
753c8f20e4
Add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23989 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-25 21:02:21 +00:00
Andrew Lenharth
2a2de66db2
add TargetExternalSymbol
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23886 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23 03:40:17 +00:00
Nate Begeman
ced9d5dcd3
SimplifySelectCC is dead
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23705 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-13 03:10:46 +00:00
Jim Laskey
453d21e66c
Added allnodes_size for scheduling support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23567 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-30 19:27:01 +00:00
Chris Lattner
fde3f3061d
Add a new argument to ReplaceAllUsesWith to keep track of nodes deleted by
...
this method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23254 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-07 05:36:18 +00:00
Chris Lattner
ab2eb66f07
add a map for nullary ops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23223 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-02 19:35:42 +00:00
Nate Begeman
1d4d414111
First pass at the DAG Combiner. It isn't used anywhere yet, but it should
...
be mostly functional. It currently has all folds from SelectionDAG.cpp
that do not involve a condition code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23184 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-01 00:19:25 +00:00
Chris Lattner
d6a80778e5
Allow physregs to occur in the dag with multiple types. Though I don't like
...
this, it is a requirement on PPC, which can have an f32 value in r3 at one
point in a function and a f64 value in r3 at another point. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23160 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-30 22:38:05 +00:00
Chris Lattner
e3f1026683
add some method variants
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23142 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-30 01:56:13 +00:00
Chris Lattner
ba8a0e0d7f
Add a new API for nate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23132 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-29 22:00:00 +00:00
Chris Lattner
26005b1b67
Add a new version of ReplaceAllUsesWith, make the comments more useful.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23086 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26 18:35:58 +00:00
Chris Lattner
5839bf2b3b
Change ConstantPoolSDNode to actually hold the Constant itself instead of
...
putting it into the constant pool. This allows the isel machinery to
create constants that it will end up deciding are not needed, without them
ending up in the resultant function constant pool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23081 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26 17:15:30 +00:00
Chris Lattner
2bb06cdf27
Fix a huge annoyance: SelectNodeTo took types before the opcode unlike
...
every other SD API. Fix it to take the opcode before the types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23079 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26 16:36:26 +00:00
Chris Lattner
3cd82619a8
add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23049 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 17:24:09 +00:00
Chris Lattner
aaaaf79d4a
Add support for TargetConstantPool node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23040 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 05:02:41 +00:00
Chris Lattner
afb2dd43de
add a new TargetFrameIndex node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23035 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 00:43:01 +00:00
Chris Lattner
7651fa4a7e
add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23027 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 23:00:29 +00:00
Chris Lattner
420089c47c
add two new methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23024 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 22:43:53 +00:00
Chris Lattner
4fbde4d871
add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22958 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21 22:30:42 +00:00
Chris Lattner
c3aea74ae5
ADd a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22954 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21 19:48:53 +00:00
Chris Lattner
d54209fcf9
Add 5-operand version of SelectNodeTo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22950 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21 18:49:58 +00:00
Chris Lattner
f6b184981e
ADd support for TargetGlobalAddress nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22939 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19 22:31:34 +00:00
Nate Begeman
5ce0d308e6
Add support for target nodes with more than 3 operands, required by ppc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22894 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19 00:56:28 +00:00
Nate Begeman
294a0a103d
Add support for target DAG nodes that take 4 operands, such as PowerPC's
...
rlwinm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22856 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18 07:30:15 +00:00
Chris Lattner
6542d95060
add ReplaceAllUsesWith, and a helper to implemented it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22833 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 18:59:17 +00:00
Chris Lattner
056f9f61d0
add some helper methods, and a new TargetConstant node, which is not
...
subjected to folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22812 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 00:33:30 +00:00
Chris Lattner
d5d0f9bd20
Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef)
...
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. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22806 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16 21:55:35 +00:00
Nate Begeman
7cbd525ba8
Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nasty
...
fixme from the PowerPC backend. Emit slightly better code for legalizing
select_cc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16 19:49:35 +00:00
Chris Lattner
1b95095857
add some methods for dag->dag isel
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22800 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16 18:16:24 +00:00
Nate Begeman
ff66368a5f
Remove an unncessary argument to SimplifySelectCC and add an additional
...
assert when creating a select_cc node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22780 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-13 06:14:17 +00:00
Nate Begeman
32c392a3a5
Fix the fabs regression on x86 by abstracting the select_cc optimization
...
out into SimplifySelectCC. This allows both ISD::SELECT and ISD::SELECT_CC
to use the same set of simplifying folds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22779 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-13 06:00:21 +00:00
Nate Begeman
e5d63829fd
Some SELECT_CC cleanups:
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22757 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-11 01:12:20 +00:00
Nate Begeman
9373a81e53
Add new node, SELECT_CC. This node is for targets that don't natively
...
implement SELECT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22755 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-10 20:51:12 +00:00
Chris Lattner
4cf009f49c
I can't believe I caught this before Misha! :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22733 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-09 23:08:53 +00:00
Chris Lattner
7cf7e3f33f
Eliminate the SetCCSDNode in favor of a CondCodeSDNode class. This pulls the
...
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...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22728 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-09 20:20:18 +00:00
Chris Lattner
5f056bf4b8
Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode.
...
This is the last MVTSDNode.
This allows us to eliminate a bunch of special case code for handling
MVTSDNodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22367 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-10 01:55:33 +00:00
Chris Lattner
f7db8c69a1
Move TRUNCSTORE to using a VTSDNode operand instead of being a MVTSDNode.
...
Also update some comments that Andrew forgot to update when he changed
loads/stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22365 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-10 00:28:25 +00:00
Chris Lattner
15e4b01920
Introduce a new VTSDNode class with the ultimate goal of eliminating the
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22364 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-10 00:07:11 +00:00
Chris Lattner
6765bfed31
add a new map
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22017 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 07:36:02 +00:00
Chris Lattner
4211e73c49
Add a way to construct an arbitrary node, cleanly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22008 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 06:20:08 +00:00
Chris Lattner
4c1eae9fb3
add TAILCALL node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21956 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 18:40:17 +00:00
Chris Lattner
21074f43ed
Add READPORT, WRITEPORT, READIO, WRITEIO nodes, wrap long lines
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21823 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-09 20:21:27 +00:00
Andrew Lenharth
691ef2ba06
Implement count leading zeros (ctlz), count trailing zeros (cttz), and count
...
population (ctpop). Generic lowering is implemented, however only promotion
is implemented for SelectionDAG at the moment.
More coming soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 17:19:30 +00:00
Andrew Lenharth
2d86ea21dd
Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends.
...
(TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*. Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-27 20:10:01 +00:00
Misha Brukman
ea61c35872
Remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 20:39:54 +00:00
Chris Lattner
1ccae666f5
Add a new helper method which returns the and that is equivalent to what
...
ZERO_EXTEND_INREG was.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21264 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-13 02:37:19 +00:00
Chris Lattner
b29cb29364
Map doubles from integers, not the double itself.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20229 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 20:16:58 +00:00
Chris Lattner
063287a76b
Give SelectionDAG a TargetLowering instance instead of TM instance.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19778 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-23 04:36:06 +00:00
Chris Lattner
02b86f52ed
Add an accessor for targets that pass args in regs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19702 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-19 20:19:58 +00:00
Chris Lattner
c7ba0eb5eb
Keep track of the returned value type as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19669 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-18 19:26:18 +00:00
Chris Lattner
30c0fc23c5
Allow setcc operations to have non-bool types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19655 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-18 02:51:41 +00:00
Chris Lattner
859157daee
Add new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19568 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-15 06:17:04 +00:00
Chris Lattner
60e4878f94
Change CopyFromReg to take and produce a chain node, allowing it to be used
...
with physregs that are not live across the entire block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19560 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-14 22:37:20 +00:00
Chris Lattner
1cff05c7c2
Start adding some new operators, give IMPLICIT_DEF a chain operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19558 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-14 22:07:46 +00:00
Chris Lattner
18c2f13e0f
Add new ImplicitDef node, rename CopyRegSDNode class to RegSDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19535 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-13 20:50:02 +00:00
Chris Lattner
9ffdfb6bae
Update comments to indicate CopyFrom/ToReg take physregs as well as vregs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19514 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12 18:11:36 +00:00
Chris Lattner
1080b9ee53
Add support for graph operations, and add a viewGraph method to SelectionDAG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19440 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-10 23:05:53 +00:00
Chris Lattner
d1fc96499b
Add a new SelectionDAG::RemoveDeadNodes method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19344 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:08:55 +00:00
Chris Lattner
c3aae25116
Complete rewrite of the SelectionDAG class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19327 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:46:32 +00:00
Reid Spencer
551ccae044
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 22:55:40 +00:00
Brian Gaeke
d0fde30ce8
Put all LLVM code into the llvm namespace, as per bug 109.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
John Criswell
6fbcc26f14
Added LLVM copyright header (for lack of a better term).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:19:47 +00:00
Chris Lattner
b274d4a38b
Add missing #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8063 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 23:08:55 +00:00
Chris Lattner
f4f5f8bcaa
Add support for basic blocks, unary/binary unspecs, conditional branches, ...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7874 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 04:52:51 +00:00
Chris Lattner
cacf462915
Initial checkin of SelectionDAG header file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7716 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 14:56:26 +00:00