#
c2856387 |
| 23-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
another selectto
llvm-svn: 25548
|
#
a5110e85 |
| 13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add stacksave/stackrestore nodes
llvm-svn: 25270
|
#
1b8121b2 |
| 11-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add bswap, rotl, and rotr nodes Add dag combiner code to recognize rotl, rotr Add ppc code to match rotl
Targets should add rotl/rotr patterns if they have them
llvm-svn: 25222
|
#
a1026371 |
| 05-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Grammer correction.
llvm-svn: 25106
|
#
762e9ec0 |
| 05-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Added initial support for DEBUG_LABEL allowing debug specific labels to be inserted in the code.
llvm-svn: 25104
|
#
0da76a67 |
| 04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Add unique id to debug location for debug label use (work in progress.)
llvm-svn: 25096
|
#
9babd861 |
| 23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
improve comment: mention vectors
llvm-svn: 24971
|
#
bc1be55a |
| 23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
add a new node
llvm-svn: 24969
|
#
7b8aac84 |
| 22-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
remove a dead node
llvm-svn: 24966
|
#
7c462768 |
| 16-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Added source file/line correspondence for dwarf (PowerPC only at this point.)
llvm-svn: 24748
|
#
41b1cdc7 |
| 06-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG ISel how to turn ConstantPacked values into constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to
Teach the SelectionDAG ISel how to turn ConstantPacked values into constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to generate altivec code such as the following, which adds a vector constantto a packed float.
LCPI1_0: <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 > .space 4 .space 4 .space 4 .long 1065353216 ; float 1 .text .align 4 .globl _foo _foo: lis r2, ha16(LCPI1_0) la r2, lo16(LCPI1_0)(r2) li r4, 0 lvx v0, r4, r2 lvx v1, r4, r3 vaddfp v0, v1, v0 stvx v0, r4, r3 blr
For the llvm code:
void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 > store <4 x float> %tmp2, <4 x float> *%a ret void }
llvm-svn: 24616
show more ...
|
#
0e0de2f3 |
| 30-Nov-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added an index field to GlobalAddressSDNode so it can represent X+12, etc.
llvm-svn: 24523
|
#
5a8726c5 |
| 29-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
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.
llvm-svn: 24512
|
#
d37c1315 |
| 22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Check in code to scalarize arbitrarily wide packed types for some simple vector operations (load, add, sub, mul).
This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x
Check in code to scalarize arbitrarily wide packed types for some simple vector operations (load, add, sub, mul).
This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void }
on ppc as: _foo: lfs f0, 12(r3) lfs f1, 8(r3) lfs f2, 4(r3) lfs f3, 0(r3) fadds f0, f0, f0 fadds f1, f1, f1 fadds f2, f2, f2 fadds f3, f3, f3 stfs f0, 12(r3) stfs f1, 8(r3) stfs f2, 4(r3) stfs f3, 0(r3) blr
llvm-svn: 24484
show more ...
|
#
2d4ff48c |
| 20-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
add a new node type
llvm-svn: 24436
|
#
b2e089c3 |
| 19-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
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
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
llvm-svn: 24416
show more ...
|
#
de1b5d6b |
| 11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
added a chain output
llvm-svn: 24306
|
#
bd0127e4 |
| 11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Add support for a cycle counter intrinsic. As basically all processors have this and have it in about the same form, I think this makes sense. on X86, you do a RDTSC (64bit result, from any ring sin
Add support for a cycle counter intrinsic. As basically all processors have this and have it in about the same form, I think this makes sense. on X86, you do a RDTSC (64bit result, from any ring since the P5MMX) on Alpha, you do a RDCC on PPC, there is a sequence which may or may not work depending on how things are setup by the OS. Or something like that. Maybe someone who knows PPC can add support. Something about the time base register. on Sparc, you read %tick, which in some solaris versions (>=8) is readable by userspace on IA64 read ar.itc
So I think the ulong is justified since all of those are 64bit. Support is slighly flaky on old chips (P5 and lower) and sometimes depends on OS (PPC, Sparc). But for modern OS/Hardware (aka this decade), we should be ok.
I am still not sure what to do about lowering. I can either see a lower to 0, to gettimeofday (or the target os equivalent), or loudly complaining and refusing to continue.
I am commiting an Alpha implementation. I will add the X86 implementation if I have to (I have use of it in the near future), but if someone who knows that backend (and the funky multi-register results) better wants to add it, it would take them a lot less time ;)
TODO: better lowering and legalizing, and support more platforms llvm-svn: 24299
show more ...
|
#
46b1976a |
| 09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
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 s
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.
llvm-svn: 24262
show more ...
|
#
90f017c1 |
| 08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
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. T
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.
llvm-svn: 24250
show more ...
|
#
e406e481 |
| 08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Switch the operandlist/valuelist from being vectors to being just an array. This saves 12 bytes from SDNode, but doesn't speed things up substantially (our graphs apparently already fit within the ca
Switch the operandlist/valuelist from being vectors to being just an array. This saves 12 bytes from SDNode, but doesn't speed things up substantially (our graphs apparently already fit within the cache on my g5). In any case this reduces memory usage.
llvm-svn: 24248
show more ...
|
Revision tags: llvmorg-1.6.0 |
|
#
4b3932aa |
| 23-Oct-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
add TargetExternalSymbol
llvm-svn: 23886
|
#
5fc36727 |
| 05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
add a helper class
llvm-svn: 23633
|
#
d3ea19b5 |
| 28-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add FP versions of the binary operators, keeping the int and fp worlds seperate.
llvm-svn: 23506
|
#
969af57d |
| 02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new ANY_EXTEND node, which operates like an extension but has undefined top bits.
llvm-svn: 23200
|