Chris Lattner
8e8d9a3358
Add a new getNode() method that takes a pointer to an already-intern'd list
...
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
2006-08-14 23:31:51 +00:00
Chris Lattner
fe1fd00ce8
Add code to resize the CSEMap hash table. This doesn't speedup codegen of
...
kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :)
llvm-svn: 29675
2006-08-14 22:19:25 +00:00
Chris Lattner
be2fc7b875
Eliminate some malloc traffic by allocating vectors on the stack. Change some
...
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
2006-08-08 01:09:31 +00:00
Chris Lattner
1661ffa2eb
Revamp the "CSEMap" datastructure used in the SelectionDAG class. This
...
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
2006-08-07 23:03:03 +00:00
Evan Cheng
a8e15977aa
Remove NodeDepth; Add NodeId which is a unique id per node per DAG. It can only be set by SelectionDAG.
...
llvm-svn: 29336
2006-07-27 06:38:21 +00:00
Chris Lattner
3415e20ae6
Add an out-of-line virtual method for the sdnode class to give it a home.
...
llvm-svn: 29192
2006-07-19 00:00:37 +00:00
Chris Lattner
990b00b325
Add a new sentry node type, allowing assertions to catch trivial
...
use-after-deleted errors.
llvm-svn: 28513
2006-05-27 00:40:15 +00:00
Evan Cheng
f53c4cc192
Change RET node to include signness information of the return values. e.g.
...
RET chain, value1, sign1, value2, sign2
llvm-svn: 28509
2006-05-26 23:09:09 +00:00
Evan Cheng
5d83c6ad6a
CALL node change: now containing signness of each argument.
...
llvm-svn: 28460
2006-05-25 00:54:33 +00:00
Chris Lattner
5d949a2ad2
Add a new CALL node.
...
llvm-svn: 28337
2006-05-16 22:52:27 +00:00
Chris Lattner
f88654d468
Add a chain to FORMAL_ARGUMENTS.
...
llvm-svn: 28319
2006-05-16 06:43:59 +00:00
Nate Begeman
7ed816f900
JumpTable support! What this represents is working asm and jit support for
...
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
2006-04-22 18:53:45 +00:00
Reid Spencer
553050adcb
Make sure both member variables are initialized in the default constructor
...
for SDOperand. This gets rid of numerous warnings in lib/CodeGen and
lib/Target when compiled with GCC 4.0.2
llvm-svn: 27607
2006-04-12 16:44:15 +00:00
Chris Lattner
bf69078515
new dag node
...
llvm-svn: 27596
2006-04-11 21:30:42 +00:00
Chris Lattner
a4a7e59c52
Add a new VSELECT node.
...
llvm-svn: 27541
2006-04-08 22:16:01 +00:00
Chris Lattner
99a3213376
simplify this method
...
llvm-svn: 27338
2006-04-02 02:28:52 +00:00
Chris Lattner
83ec289ebf
Add a new node
...
llvm-svn: 27230
2006-03-28 19:54:11 +00:00
Chris Lattner
a0f80c3c3f
Tblgen doesn't like multiple SDNode<> definitions that map to the same
...
enum value. Split them into separate enums.
llvm-svn: 27199
2006-03-28 00:39:06 +00:00
Evan Cheng
4667bd17cb
Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for
...
floating point cases.
llvm-svn: 27165
2006-03-27 06:58:47 +00:00
Evan Cheng
ef3b33b847
Add ISD::isBuildVectorAllZeros predicate
...
llvm-svn: 27147
2006-03-26 09:50:58 +00:00
Chris Lattner
91fe1d4b55
Add a predicate
...
llvm-svn: 27129
2006-03-25 22:56:35 +00:00
Chris Lattner
7c4160da23
add a new intrinsic node
...
llvm-svn: 27019
2006-03-24 01:03:55 +00:00
Chris Lattner
d4f04c4b6a
Fix comments
...
llvm-svn: 26960
2006-03-22 20:09:04 +00:00
Chris Lattner
b1bc1f88c0
add a new node
...
llvm-svn: 26958
2006-03-22 19:56:46 +00:00
Chris Lattner
9f8cfe5ab4
add some nodes for extractelement
...
llvm-svn: 26927
2006-03-21 20:43:08 +00:00
Chris Lattner
0b7ec34646
add a node
...
llvm-svn: 26879
2006-03-19 23:42:51 +00:00
Chris Lattner
bbbf21b37b
improve comments, add a new MVT::getVectorBaseType method.
...
llvm-svn: 26855
2006-03-19 05:26:45 +00:00
Chris Lattner
868679006d
Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. Allow
...
*BUILD_VECTOR to take variable inputs.
llvm-svn: 26846
2006-03-19 00:52:25 +00:00
Chris Lattner
25feee0be9
Update comments.
...
llvm-svn: 26839
2006-03-18 01:43:28 +00:00
Chris Lattner
da6506a1f2
add a couple of enum values
...
llvm-svn: 26829
2006-03-17 19:53:41 +00:00
Nate Begeman
42736d46b2
Remove BRTWOWAY*
...
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.
llvm-svn: 26814
2006-03-17 01:40:33 +00:00
Chris Lattner
9f589d65a1
Add a copysign node
...
llvm-svn: 26540
2006-03-05 05:06:40 +00:00
Evan Cheng
4afe769361
Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.
...
llvm-svn: 26504
2006-03-03 07:01:07 +00:00
Evan Cheng
4ddc3b2c54
SDOperand::isOperand should not be a forwarding. It must check *this against N's operands.
...
llvm-svn: 26502
2006-03-03 06:42:32 +00:00
Evan Cheng
183b913508
Added isOperand(N): true if this is an operand of N
...
llvm-svn: 26501
2006-03-03 06:24:54 +00:00
Chris Lattner
999aa36a04
remove the read/write port/io intrinsics.
...
llvm-svn: 26479
2006-03-03 00:19:58 +00:00
Evan Cheng
2cbf9d93d3
- Added VConstant as an abstract version of ConstantVec.
...
- All abstrct vector nodes must have # of elements and element type as their
first two operands.
llvm-svn: 26432
2006-03-01 00:51:13 +00:00
Evan Cheng
026fd6af96
Added an offset field to ConstantPoolSDNode.
...
llvm-svn: 26371
2006-02-25 09:54:52 +00:00
Chris Lattner
ed45ad33b7
Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.
...
Patch by Martin Partel!
llvm-svn: 26313
2006-02-22 16:23:43 +00:00
Nate Begeman
9c0ab71f4a
kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC
...
and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
llvm-svn: 26255
2006-02-17 05:43:56 +00:00
Chris Lattner
70865ea43f
Add a comment: value is log2
...
llvm-svn: 26068
2006-02-09 02:10:15 +00:00
Evan Cheng
d46a7fc65a
* Added SDNode::isOnlyUse().
...
* Fix hasNUsesOfValue(), it should be const.
llvm-svn: 25990
2006-02-05 06:29:23 +00:00
Evan Cheng
f115c17f23
Allow the specification of explicit alignments for constant pool entries.
...
llvm-svn: 25855
2006-01-31 22:23:14 +00:00
Chris Lattner
9cb1135f52
remove some methods
...
llvm-svn: 25779
2006-01-29 07:57:11 +00:00
Chris Lattner
57b2492ecc
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.
llvm-svn: 25769
2006-01-29 06:24:40 +00:00
Chris Lattner
c9fb6af71c
The 'target-independent' ISD::CALL isn't. Nuke it, making way for Nate's
...
future work.
llvm-svn: 25720
2006-01-28 00:18:27 +00:00
Chris Lattner
6980ff5179
Add new INLINEASM node
...
llvm-svn: 25663
2006-01-26 22:23:45 +00:00
Nate Begeman
c29fac7fce
First part of bug 680:
...
Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.
llvm-svn: 25606
2006-01-25 18:21:52 +00:00
Chris Lattner
1c40cfd488
add a method
...
llvm-svn: 25581
2006-01-24 05:47:05 +00:00
Andrew Lenharth
35efa9c2d9
another couple selects
...
llvm-svn: 25551
2006-01-23 21:51:14 +00:00