| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of known size.
llvm-svn: 97860
|
| |
|
|
| |
llvm-svn: 97858
|
| |
|
|
|
|
| |
Luckily this never was released.
llvm-svn: 97857
|
| |
|
|
| |
llvm-svn: 97856
|
| |
|
|
|
|
| |
functional change yet.
llvm-svn: 97855
|
| |
|
|
|
|
| |
conversions.
llvm-svn: 97854
|
| |
|
|
| |
llvm-svn: 97846
|
| |
|
|
|
|
|
|
|
| |
is a workaround for <rdar://problem/7672401/> (which I filed).
This let's us build Wine on Darwin, and it gets the Qt build there a little bit
further (so Doug says).
llvm-svn: 97845
|
| |
|
|
|
|
|
|
| |
can be used in more places. Add an argument for the TargetData that
most of them need. Update for the getInt8PtrTy() change. Should be
no functionality change.
llvm-svn: 97844
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CALL ... %RAX<imp-def>
... [not using %RAX]
%EAX = ..., %RAX<imp-use, kill>
RET %EAX<imp-use,kill>
Now we do this:
CALL ... %RAX<imp-def, dead>
... [not using %RAX]
%EAX = ...
RET %EAX<imp-use,kill>
By not artificially keeping %RAX alive, we lower register pressure a bit.
The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously
55, anybody can see that. Sheesh.
llvm-svn: 97838
|
| |
|
|
|
|
| |
post-ra scheduler has run. Disable the verifier checks that late in the game.
llvm-svn: 97837
|
| |
|
|
| |
llvm-svn: 97836
|
| |
|
|
| |
llvm-svn: 97830
|
| |
|
|
|
|
| |
>= memset / memcpy / memmove size.
llvm-svn: 97828
|
| |
|
|
|
|
| |
integer.
llvm-svn: 97827
|
| |
|
|
| |
llvm-svn: 97818
|
| |
|
|
| |
llvm-svn: 97814
|
| |
|
|
|
|
| |
from different addr spaces.
llvm-svn: 97813
|
| |
|
|
|
|
|
|
|
|
|
| |
The MicroBlaze backend was generating stack layouts that did not
conform correctly to the ABI. This update generates stack layouts
which are closer to what GCC does.
Variable arguments support was added as well but the stack layout
for varargs has not been finalized.
llvm-svn: 97807
|
| |
|
|
|
|
|
|
|
|
|
| |
parts of the cmp|cmp and cmp&cmp folding logic wasn't prepared for vectors
(unrelated to the bug but noticed while in the code) and the code was
*definitely* not safe to use by the (cast icmp)|(cast icmp) handling logic
that I added in r95855. Fix all this up by changing the various routines
to more consistently use IRBuilder and not pass in the I which had the wrong
type.
llvm-svn: 97801
|
| |
|
|
|
|
| |
itself passed as a pointer, then it's obviously not safe to do a tail call.
llvm-svn: 97797
|
| |
|
|
|
|
| |
compares, noticed by inspection.
llvm-svn: 97795
|
| |
|
|
|
|
|
| |
in a very specific use pattern embodied in the carefully
reduced testcase.
llvm-svn: 97794
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 97793
|
| |
|
|
| |
llvm-svn: 97792
|
| |
|
|
|
|
|
|
|
|
|
| |
node which has a flag. That flag in turn was used by an
already-selected adde which turned into an ADC32ri8 which
used a selected load which was chained to the load we
folded. This flag use caused us to form a cycle. Fix
this by not ignoring chains in IsLegalToFold even in
cases where the isel thinks it can.
llvm-svn: 97791
|
| |
|
|
| |
llvm-svn: 97789
|
| |
|
|
| |
llvm-svn: 97788
|
| |
|
|
|
|
| |
Allows us to find executables that are in the same directory.
llvm-svn: 97786
|
| |
|
|
|
|
| |
fully understand.
llvm-svn: 97782
|
| |
|
|
| |
llvm-svn: 97781
|
| |
|
|
| |
llvm-svn: 97779
|
| |
|
|
|
|
|
|
|
| |
rounding correctly. This implementation is a generalization of
the x86_64 code in compiler-rt.
This fixes rdar://7683708.
llvm-svn: 97778
|
| |
|
|
| |
llvm-svn: 97776
|
| |
|
|
|
|
| |
the following Intrinsic::bswap code. I have no idea why it wasn't breaking stuff.
llvm-svn: 97774
|
| |
|
|
| |
llvm-svn: 97769
|
| |
|
|
| |
llvm-svn: 97768
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code:
float floatingPointComparison(float x, float y) {
double product = (double)x * y;
if (product == 0.0)
return product;
return product - 1.0;
}
produces this:
_floatingPointComparison:
0000000000000000 cvtss2sd %xmm1,%xmm1
0000000000000004 cvtss2sd %xmm0,%xmm0
0000000000000008 mulsd %xmm1,%xmm0
000000000000000c pxor %xmm1,%xmm1
0000000000000010 ucomisd %xmm1,%xmm0
0000000000000014 jne 0x00000004
0000000000000016 jp 0x00000002
0000000000000018 jmp 0x00000008
000000000000001a addsd 0x00000006(%rip),%xmm0
0000000000000022 cvtsd2ss %xmm0,%xmm0
0000000000000026 ret
The "jne/jp/jmp" sequence can be reduced to this instead:
_floatingPointComparison:
0000000000000000 cvtss2sd %xmm1,%xmm1
0000000000000004 cvtss2sd %xmm0,%xmm0
0000000000000008 mulsd %xmm1,%xmm0
000000000000000c pxor %xmm1,%xmm1
0000000000000010 ucomisd %xmm1,%xmm0
0000000000000014 jp 0x00000002
0000000000000016 je 0x00000008
0000000000000018 addsd 0x00000006(%rip),%xmm0
0000000000000020 cvtsd2ss %xmm0,%xmm0
0000000000000024 ret
for a savings of 2 bytes.
This xform can happen when we recognize that jne and jp jump to the same "true"
MBB, the unconditional jump would jump to the "false" MBB, and the "true" branch
is the fall-through MBB.
llvm-svn: 97766
|
| |
|
|
| |
llvm-svn: 97765
|
| |
|
|
| |
llvm-svn: 97763
|
| |
|
|
|
|
| |
of either sxtb16 or uxtb16, and the unified syntax does not specify ".w".
llvm-svn: 97760
|
| |
|
|
|
|
| |
positive where pointers would be leaked on llvm_shutdown.
llvm-svn: 97759
|
| |
|
|
|
|
|
|
| |
as nounwind are marked with a -1 call-site value. This is necessary to, for
example, correctly process exceptions thrown from within an "unexpected"
execption handler (see SingleSource/Regression/C++/EH/expection_spec_test.cpp).
llvm-svn: 97757
|
| |
|
|
|
|
| |
frame pointer.
llvm-svn: 97755
|
| |
|
|
| |
llvm-svn: 97752
|
| |
|
|
| |
llvm-svn: 97747
|
| |
|
|
|
|
|
|
| |
an undef value. This is only going to come up for bugpoint-reduced tests --
correct programs will not access memory at undefined addresses -- so it's not
worth the effort of doing anything more aggressive.
llvm-svn: 97745
|
| |
|
|
|
|
| |
We need this so can not bake DESTDIR into the O'Caml symlinks.
llvm-svn: 97743
|
| |
|
|
|
|
|
|
|
| |
These instructions technically define AL,AH, but a trick in X86ISelDAGToDAG
reads AX in order to avoid reading AH with a REX instruction.
Fix PR6489.
llvm-svn: 97742
|
| |
|
|
|
|
| |
clobber registers in a different order.
llvm-svn: 97741
|