Chris Lattner
94de7bc3aa
get def use info more correct.
...
llvm-svn: 45821
2008-01-10 05:12:37 +00:00
Chris Lattner
9e69654461
Infer mayload
...
llvm-svn: 45819
2008-01-10 04:44:48 +00:00
Chris Lattner
c72335878d
add SDNPMayLoad to the 'load' sdnode definition. This is enough to get all the x86
...
instructions (with patterns) that load memory marked, for example.
llvm-svn: 45818
2008-01-10 04:44:32 +00:00
Chris Lattner
1ca2068227
realize that instructions who match intrinsics that read memory read memory.
...
Also, instructions with any nodes that are SDNPMayLoad also read memory.
llvm-svn: 45817
2008-01-10 04:38:57 +00:00
Chris Lattner
f171482a66
verify that the frame index is immutable before remat'ing (still disabled)
...
or being side-effect free.
llvm-svn: 45816
2008-01-10 04:16:31 +00:00
Owen Anderson
d445b8813f
Don't use LiveVariables::VarInfo::DefInst.
...
llvm-svn: 45815
2008-01-10 03:12:54 +00:00
Evan Cheng
0f8c7c4a73
Codegen improvement has reduced one spill.
...
llvm-svn: 45814
2008-01-10 02:54:40 +00:00
Evan Cheng
a26552493b
Mark byval parameter stack objects mutable for now.
...
llvm-svn: 45813
2008-01-10 02:24:25 +00:00
Evan Cheng
301b0cade5
Add a isImmutable bit to StackObject. Fixed stack objects are immutable (in the function) unless specified otherwise.
...
llvm-svn: 45812
2008-01-10 02:18:37 +00:00
Dale Johannesen
7ecb3b79c7
Emit unused EH frames for weak definitions on Darwin,
...
because assembler/linker can't cope with weak absolutes.
PR 1880.
llvm-svn: 45811
2008-01-10 02:03:30 +00:00
Owen Anderson
4f45cef2f9
Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the equivalent API from
...
MachineRegisterInfo. Once all clients are switched over, the former will be going away.
llvm-svn: 45805
2008-01-10 01:36:43 +00:00
Chris Lattner
cb0e1bcf0c
provide def_* and use_* iterators in addition to reg_* iterators.
...
The first only returns definitions of a register, the second only
returns uses, the third returns both.
llvm-svn: 45803
2008-01-10 01:01:27 +00:00
Owen Anderson
51b8e20ccf
Add more comments explaining the basics of how the decision of when to rename and when to insert
...
copies is made.
llvm-svn: 45799
2008-01-10 00:47:01 +00:00
Evan Cheng
fead113fe0
Do not use the stack pointer directly, issue a copyfromreg instead. Otherwise we can end up with something like ADD32ri %esp, x which two-address pass won't like.
...
llvm-svn: 45798
2008-01-10 00:37:26 +00:00
Owen Anderson
8958a78576
Get rid of the isKillInst predicate. LiveVariables already provides this information.
...
llvm-svn: 45797
2008-01-10 00:33:11 +00:00
Chris Lattner
ec79bba97f
Fix PR1845 and rdar://5676945. Generic vectors smaller
...
than hardware supported type will be scalarized, so we
can infer their alignment from that info.
We now codegen pr1845 into:
_boolVectorSelect:
lbz r2, 0(r3)
stb r2, -16(r1)
blr
llvm-svn: 45796
2008-01-10 00:30:57 +00:00
Chris Lattner
e34d7d0e24
new testcase for PR1845
...
llvm-svn: 45795
2008-01-10 00:30:38 +00:00
Evan Cheng
73d1017871
Remove comments that do not correspond to anything after recent refactoring.
...
llvm-svn: 45792
2008-01-10 00:09:10 +00:00
Owen Anderson
1c8152ba03
Copies need to be inserted before the first terminator, not at the end of the block.
...
llvm-svn: 45791
2008-01-10 00:01:41 +00:00
Evan Cheng
0e400d4cb7
Special copy SUnit's do not have SDNode's.
...
llvm-svn: 45787
2008-01-09 23:01:55 +00:00
Owen Anderson
436db42a3c
Clean up StrongPHIElimination a bit, and add some more comments to the internal structures. There's
...
still more work to do on this front.
llvm-svn: 45783
2008-01-09 22:40:54 +00:00
Duncan Sands
48f22f0b80
Fix compile failures with g++-4.3.
...
llvm-svn: 45781
2008-01-09 19:42:09 +00:00
Chris Lattner
204e4a27b6
many cleanups and fixed, contributed by Sam Bishop
...
llvm-svn: 45780
2008-01-09 19:28:50 +00:00
Owen Anderson
4de0c3978d
StrongPHIElim: Now with even fewer trivial bugs!
...
llvm-svn: 45775
2008-01-09 10:41:39 +00:00
Owen Anderson
77c3fe441b
Fix an infinite recursion bug in InsertCopies.
...
llvm-svn: 45774
2008-01-09 10:32:30 +00:00
Owen Anderson
e0fd9bd35a
Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip.
...
llvm-svn: 45773
2008-01-09 06:19:05 +00:00
Evan Cheng
a31824a08e
Fix sse2.psrl.w and sse2.psrl.q definitions.
...
llvm-svn: 45772
2008-01-09 02:16:44 +00:00
Chris Lattner
7ff4a8bf3f
Fix llvm-ld -Xlinker, patch by Daniel Teske!
...
llvm-svn: 45770
2008-01-09 01:01:17 +00:00
Chris Lattner
9129f51f9b
add a testcase
...
llvm-svn: 45768
2008-01-09 00:37:18 +00:00
Chris Lattner
45e5032b1d
add a note
...
llvm-svn: 45766
2008-01-09 00:17:57 +00:00
Chris Lattner
51b01bf8a5
Make load->store deletion a bit smarter. This allows us to compile this:
...
void test(long long *P) { *P ^= 1; }
into just:
_test:
movl 4(%esp), %eax
xorl $1, (%eax)
ret
instead of code like this:
_test:
movl 4(%esp), %ecx
xorl $1, (%ecx)
movl 4(%ecx), %edx
movl %edx, 4(%ecx)
ret
llvm-svn: 45762
2008-01-08 23:08:06 +00:00
Owen Anderson
1b0d5c747e
Rename registers that do not need copies.
...
llvm-svn: 45759
2008-01-08 21:54:52 +00:00
Duncan Sands
7b1460cca4
Crashes llc when using Chris's new legalization logic.
...
llvm-svn: 45758
2008-01-08 21:51:53 +00:00
Ted Kremenek
a0a2881b1e
Added "getRoot()" to ImmutableMap.
...
Made the ctor for ImmutableMap to construct a map from an AVL tree public.
llvm-svn: 45756
2008-01-08 21:05:59 +00:00
Ted Kremenek
9b0f70bb85
Fixed 80 col. violation.
...
llvm-svn: 45752
2008-01-08 19:38:55 +00:00
Chris Lattner
07fde9bde1
add a mayLoad property for machine instructions, a correlary to mayStore.
...
This is currently not set by anything.
llvm-svn: 45748
2008-01-08 18:05:21 +00:00
Duncan Sands
bb956ca730
Use size_t to store Pos, avoid truncating value
...
on 64-bit builds. Analysis and original patch
by Török Edwin. Code audit found another place
with the same problem, also fixed here.
llvm-svn: 45746
2008-01-08 10:06:15 +00:00
Chris Lattner
2940c5c56d
Implement PR1795, an instcombine hack for forming GEPs with integer pointer arithmetic.
...
llvm-svn: 45745
2008-01-08 07:23:51 +00:00
Chris Lattner
ff71ec4dfb
add match support for casts.
...
llvm-svn: 45744
2008-01-08 07:02:44 +00:00
Chris Lattner
b17db3afa8
remove darwin/i386 t-t
...
llvm-svn: 45743
2008-01-08 06:52:51 +00:00
Chris Lattner
89f36e6b21
Finally implement correct ordered comparisons for PPC, even though
...
the code generated is not wonderful. This turns a miscompilation into
a code quality bug (noted in the ppc readme). This fixes PR642, which
is over 2 years old (!). Nate, please review this.
llvm-svn: 45742
2008-01-08 06:46:30 +00:00
Chris Lattner
184f79a5e1
Testcase for PR1721
...
llvm-svn: 45739
2008-01-08 05:16:29 +00:00
Owen Anderson
812e1ea7cf
Actually insert copies now!
...
llvm-svn: 45738
2008-01-08 05:16:15 +00:00
Chris Lattner
97879424fe
Fix PR1797
...
llvm-svn: 45736
2008-01-08 04:26:20 +00:00
Evan Cheng
00300ddff1
Minor fix to enable x86-64 pic jit (still fails for other reasons).
...
llvm-svn: 45734
2008-01-08 02:07:10 +00:00
Evan Cheng
4951da49aa
Fix a x86-64 static codegen bug. This fixes a lot of x86-64 jit failures.
...
llvm-svn: 45733
2008-01-08 02:06:11 +00:00
Bill Wendling
3b6fe5fa8d
Silence warning about loss of precision.
...
llvm-svn: 45731
2008-01-08 00:52:29 +00:00
Evan Cheng
7250120177
Only mark instructions that load a single value without extension as isSimpleLoad = 1.
...
llvm-svn: 45727
2008-01-07 23:56:57 +00:00
Chris Lattner
ba734518c1
add a new bit.
...
llvm-svn: 45726
2008-01-07 23:16:55 +00:00
Evan Cheng
8242168ef4
Unbreak x86-64.
...
llvm-svn: 45725
2008-01-07 23:08:23 +00:00