| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
| |
Running /Users/void/llvm/llvm.src/test/CodeGen/X86/dg.exp ...
FAIL: /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
Failed with exit(1) at line 1
while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll | llc -march=x86 -mattr=+sse2 -stats |& grep {1 .*folded into instructions}
child process exited abnormally
Make this conditional for now.
llvm-svn: 51563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LBB1_3: # bb
...
xorl %ebp, %ebp
subl (%ebx), %ebp
...
incl %ecx
cmpl %edi, %ecx
jl LBB1_3 # bb
Whe using machine LICM, LLVM converts it into:
xorl %esi, %esi
LBB1_3: # bb
...
movl %esi, %ebp
subl (%ebx), %ebp
...
incl %ecx
cmpl %edi, %ecx
jl LBB1_3 # bb
Two address conversion inserts the copy instruction. However, it's cheaper to
rematerialize it, and remat helps reduce register pressure.
llvm-svn: 51562
|
| |
|
|
| |
llvm-svn: 51513
|
| |
|
|
| |
llvm-svn: 51496
|
| |
|
|
|
|
|
| |
elements that have been erased. Based on a patch
by Nicolas Capens.
llvm-svn: 51485
|
| |
|
|
|
|
|
| |
and/or to handle more cases (such as this add-sitofp.ll testcase), and
port it to selectiondag's ComputeNumSignBits.
llvm-svn: 51469
|
| |
|
|
| |
llvm-svn: 51465
|
| |
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51460
|
| |
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51459
|
| |
|
|
|
|
|
|
| |
live interval to infinity if the instruction being rewritten is an
original remat def instruction. We were only checking against the clone
of the remat def which doesn't actually appear in the IR at all.
llvm-svn: 51440
|
| |
|
|
|
|
| |
generated by the spiller.
llvm-svn: 51439
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
BB1:
vr1025 = copy vr1024
..
BB2:
vr1024 = op
= op vr1025
<loop eventually branch back to BB1>
Even though vr1025 is copied from vr1024, it's not safe to coalesced them since live range of vr1025 intersects the def of vr1024. This happens when vr1025 is assigned the value of the previous iteration of vr1024 in the loop.
llvm-svn: 51394
|
| |
|
|
|
|
| |
ComputeNumSignBits to SelectionDAG's ComputeNumSignBits.
llvm-svn: 51348
|
| |
|
|
| |
llvm-svn: 51345
|
| |
|
|
|
|
| |
If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB.
llvm-svn: 51306
|
| |
|
|
| |
llvm-svn: 51305
|
| |
|
|
|
|
| |
$non_lazy_ptr's and $lazy_ptr's.
llvm-svn: 51277
|
| |
|
|
|
|
| |
Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
llvm-svn: 51200
|
| |
|
|
|
|
| |
is a v1* vector.
llvm-svn: 51192
|
| |
|
|
|
|
| |
original method caused gcc-4.2 to complain.
llvm-svn: 51186
|
| |
|
|
|
|
| |
something with a v1 type.
llvm-svn: 51160
|
| |
|
|
|
|
| |
moving toward making structs and arrays first-class types.
llvm-svn: 51157
|
| |
|
|
|
|
| |
and memset. Currently only X86 target is taking advantage of these.
llvm-svn: 51140
|
| |
|
|
| |
llvm-svn: 51131
|
| |
|
|
| |
llvm-svn: 51126
|
| |
|
|
| |
llvm-svn: 51123
|
| |
|
|
|
|
|
|
|
|
| |
are represented as "weak", but there are subtle differences
in some cases on Darwin, so we need both. The intent
is that "common" will behave identically to "weak" unless
somebody changes their target to do something else.
No functional change as yet.
llvm-svn: 51118
|
| |
|
|
| |
llvm-svn: 51115
|
| |
|
|
|
|
| |
SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ.
llvm-svn: 51112
|
| |
|
|
| |
llvm-svn: 51089
|
| |
|
|
|
|
|
|
|
|
|
| |
element from address with an offset.
pshufd $1, (%rdi), %xmm0
movd %xmm0, %eax
=>
movl 4(%rdi), %eax
llvm-svn: 51026
|
| |
|
|
|
|
|
|
|
|
|
| |
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
llvm-svn: 51022
|
| |
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
| |
|
|
|
|
| |
Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next.
llvm-svn: 51009
|
| |
|
|
|
|
| |
locations are at the right offset from each other.
llvm-svn: 51008
|
| |
|
|
|
|
|
| |
if those blocks consist entirely of common instructions;
merging will not add an extra branch in this case.
llvm-svn: 51006
|
| |
|
|
|
|
| |
changes that don't change functionality.
llvm-svn: 51004
|
| |
|
|
|
|
|
|
| |
semantically identical, but little difference in
either results or execution speed; but it's much
easier to read, at least IMO.
llvm-svn: 50999
|
| |
|
|
|
|
| |
make use of it.
llvm-svn: 50991
|
| |
|
|
| |
llvm-svn: 50990
|
| |
|
|
|
|
| |
This is necessary to unbreak the build.
llvm-svn: 50988
|
| |
|
|
|
|
|
|
| |
possible for it to produce worse code than before.
The rest of this patch is code cleanup.
llvm-svn: 50987
|
| |
|
|
| |
llvm-svn: 50967
|
| |
|
|
|
|
| |
implicit_def instead of a copy.
llvm-svn: 50927
|
| |
|
|
|
|
|
|
|
| |
- Comment fixes.
- Moar whitespace.
- Made ivars "private" by default.
No functionality change.
llvm-svn: 50926
|
| |
|
|
|
|
| |
no functional change.
llvm-svn: 50921
|
| |
|
|
|
|
|
|
| |
case where there are multiple blocks with a large
number of common tail instructions more efficiently
(compile time optimization).
llvm-svn: 50916
|
| |
|
|
|
|
|
|
|
|
|
| |
Darwin. This is a hack of course, but it does
at least look at the right thing: gotpcrel means
that this is already an offset, so an explicit
offset is not needed (and wrong). I think this
is good enough for the moment: Anton is working
on something better.
llvm-svn: 50850
|
| |
|
|
| |
llvm-svn: 50836
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on x86-64 linux. This causes no regressions on
32 bit linux and 32 bit ppc. More tests pass
on 64 bit ppc with no regressions. I didn't
turn on eh on 64 bit linux because the intrinsics
needed to compile the eh runtime aren't done
yet. But if you turn it on and link with the
mainline runtime then eh seems to work fine
on x86-64 linux with this patch. Thanks to
Dale for testing. The main point of the patch
is that if you output that some object is
encoded using 4 bytes you had better not output
8 bytes for it: the patch makes everything
consistent.
llvm-svn: 50825
|