Commit Graph

23254 Commits

Author SHA1 Message Date
Chris Lattner
dbdfef7604 add an assert to get a slightly better msg about this problem
llvm-svn: 26812
2006-03-16 23:16:17 +00:00
Chris Lattner
7e80a5a16b Fix a problem fully scalarizing values.
llvm-svn: 26811
2006-03-16 23:05:19 +00:00
Evan Cheng
33055a8aba A new entry.
llvm-svn: 26810
2006-03-16 22:44:22 +00:00
Nate Begeman
63c4456867 Notes on how to kill the eeevil brtwoway, and make ppc branch selector
more target independant, generate better code, and be less conservative.

llvm-svn: 26809
2006-03-16 22:37:48 +00:00
Chris Lattner
f2008cb73b Strangely, calls clobber call-clobbered vector regs. Whodathoughtit?
llvm-svn: 26808
2006-03-16 22:35:59 +00:00
Chris Lattner
8a756c5171 add a note
llvm-svn: 26807
2006-03-16 22:25:55 +00:00
Chris Lattner
57773fdac1 teach the ppc backend how to spill/reload vector regs
llvm-svn: 26806
2006-03-16 22:24:02 +00:00
Chris Lattner
661ee5d3c1 add callee saved vector regs
llvm-svn: 26805
2006-03-16 22:07:06 +00:00
Evan Cheng
0e1abe6e19 Bug fix: condition inverted.
llvm-svn: 26804
2006-03-16 22:02:48 +00:00
Evan Cheng
db35180b27 For each loop, keep track of all the IV expressions inserted indexed by
stride. For a set of uses of the IV of a stride which is a multiple
of another stride, do not insert a new IV expression. Rather, reuse the
previous IV and rewrite the uses as uses of IV expression multiplied by
the factor.

e.g.
x = 0 ...; x ++
y = 0 ...; y += 4
then use of y can be rewritten as use of 4*x for x86.

llvm-svn: 26803
2006-03-16 21:53:05 +00:00
Evan Cheng
cad75d9f0c Added a way for TargetLowering to specify what values can be used as the
scale component of the target addressing mode.

llvm-svn: 26802
2006-03-16 21:47:42 +00:00
Chris Lattner
7f5361757b in functions that use a lot of callee saved regs, this can be more than
5 instructions away.

llvm-svn: 26801
2006-03-16 21:31:45 +00:00
Chris Lattner
bf153651b1 Add support for copying registers. still needed: spilling and reloading them
llvm-svn: 26800
2006-03-16 20:03:58 +00:00
Chris Lattner
413bb13b27 Add support for CopyFromReg from vector values. Note: this doesn't support
illegal vector types yet!

llvm-svn: 26799
2006-03-16 19:57:50 +00:00
Chris Lattner
34f2e70f60 Teach CreateRegForValue how to handle vector types.
llvm-svn: 26798
2006-03-16 19:51:18 +00:00
Chris Lattner
eac8e98036 set TransformToType correctly for vector types.
llvm-svn: 26797
2006-03-16 19:50:01 +00:00
Chris Lattner
c7aaa3cc89 Add markers for the first and last vector value type.
llvm-svn: 26796
2006-03-16 19:42:44 +00:00
Nate Begeman
cbca1b3d14 Another case we could do better on.
llvm-svn: 26795
2006-03-16 18:50:44 +00:00
Chris Lattner
980763ddd2 New testcase, the new CFE compiles this into insertelement instructions, the
old one crashes.

llvm-svn: 26794
2006-03-16 18:47:51 +00:00
Chris Lattner
b5d0896994 Save/restore VRSAVE once per function, not once per block.
llvm-svn: 26793
2006-03-16 18:25:23 +00:00
Jim Laskey
940c39aa65 Typo.
llvm-svn: 26792
2006-03-16 18:15:12 +00:00
Chris Lattner
aab65612b8 Fix a typo Eric van Riet Paap noticed
llvm-svn: 26791
2006-03-16 16:14:59 +00:00
Reid Spencer
2c7c9cf597 Add a RUN: line so this test doesn't fail.
llvm-svn: 26790
2006-03-16 03:05:57 +00:00
Chris Lattner
4fd1599ab1 add support for the bitconvert node
llvm-svn: 26789
2006-03-16 01:29:53 +00:00
Chris Lattner
95577cb3cd add support for vector->vector casts
llvm-svn: 26788
2006-03-15 22:19:46 +00:00
Chris Lattner
7c8518a21d Add a note, this code should be moved to the dag combiner.
llvm-svn: 26787
2006-03-15 22:19:18 +00:00
Chris Lattner
4fbdb99abb minor changes so that GCC builtin can be specified before the Intrinsic info,
add some more PPC intrinsics.

llvm-svn: 26786
2006-03-15 19:23:40 +00:00
Chris Lattner
b26656cc15 Teach the strip pass to strip type names in addition to value names. This
is fallout from the type/value split in the symtab long long ago :)

llvm-svn: 26785
2006-03-15 19:22:41 +00:00
Chris Lattner
6c339fec5a allow the GCCBuiltinName field to be optional
llvm-svn: 26784
2006-03-15 19:15:26 +00:00
Jim Laskey
77239958ce Update doc to reflect changes in subprogram and block descriptors.
llvm-svn: 26783
2006-03-15 19:10:52 +00:00
Jim Laskey
f6494d753a Expand subprogram and added block descriptor.
llvm-svn: 26782
2006-03-15 19:09:58 +00:00
Andrew Lenharth
fc55d15963 no heap is happening here
llvm-svn: 26781
2006-03-15 19:03:16 +00:00
Andrew Lenharth
a6f13d1228 better check
llvm-svn: 26780
2006-03-15 19:02:54 +00:00
Andrew Lenharth
b377837353 remove qsort for now
llvm-svn: 26779
2006-03-15 18:32:18 +00:00
Evan Cheng
3f177bef5e Also requires -mattr=-sse3
llvm-svn: 26778
2006-03-15 18:05:13 +00:00
Andrew Lenharth
ad29f8dfab allow field sensitivity to be a tunable parameter
llvm-svn: 26777
2006-03-15 05:43:41 +00:00
Nate Begeman
e371cb595a Update scheduling info for vrsave instruction
llvm-svn: 26776
2006-03-15 05:25:05 +00:00
Andrew Lenharth
c285b5ff1f Handle one offset with growth case seen in povray. Namely, if we have an offset,
and the offset lands at a field boundary in the old type, construct a new type,
copying the fields masked by the offset from the old type, and unify with that.

llvm-svn: 26775
2006-03-15 04:04:21 +00:00
Andrew Lenharth
f3e73e10cf improve mem intrinsics and add a few things povray uses
llvm-svn: 26774
2006-03-15 03:43:59 +00:00
Jeff Cohen
4bf914ebcc Fix VC++ build error.
llvm-svn: 26773
2006-03-15 02:51:05 +00:00
Chris Lattner
0339c2ab58 remove typo
llvm-svn: 26772
2006-03-15 02:05:38 +00:00
Chris Lattner
bbca65b845 Autogenerate a table of intrinsic names, so we can map from intrinsic ID to
LLVM intrinsic function name.

llvm-svn: 26771
2006-03-15 01:55:21 +00:00
Chris Lattner
697e830c63 Autogenerate code to map from GCC builtin to LLVM intrinsic.
llvm-svn: 26770
2006-03-15 01:33:26 +00:00
Chris Lattner
c13249a1d3 Set TargetPrefix on target-specific intrinsics. That way, in theory, different
targets could have different implemenations of a __builtin_foo gcc intrinsic.

llvm-svn: 26769
2006-03-15 01:32:36 +00:00
Robert Bocchino
359261f2e9 Fixed a typo in the vsetfp examples.
llvm-svn: 26768
2006-03-14 23:22:57 +00:00
Robert Bocchino
60b452c13b Split the 'vset' instruction into two instructions, 'vsetint' and
'vsetfp', to reflect the fact that the semantics are different for
integer and fp values.

llvm-svn: 26767
2006-03-14 20:55:28 +00:00
Chris Lattner
443f1658c9 Update this to match the documentation in the GC doc and to match actual
practice.

llvm-svn: 26766
2006-03-14 20:02:51 +00:00
Chris Lattner
163ea2cc68 Fix the gcread/gcwrite intrinsic specifications, fixing
CodeGen/Generic/GC/alloc_loop.ll

llvm-svn: 26765
2006-03-14 20:00:20 +00:00
Chris Lattner
a5dfe68ee9 Bugfix, unbreaking CodeGen/PowerPC/cttz.ll
llvm-svn: 26764
2006-03-14 19:49:57 +00:00
Chris Lattner
981c57fdbd Fix an et-forest memory leak. Patch by Daniel Berlin.
llvm-svn: 26763
2006-03-14 19:41:45 +00:00