| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of operands in an address in so many places.
llvm-svn: 67945
|
| |
|
|
|
|
|
| |
a CALL and a RET node more generic. Add a test for tail calls with a void
return.
llvm-svn: 67943
|
| |
|
|
|
|
| |
and for functions that return types that need extending (e.g i1).
llvm-svn: 67934
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shl since imulq is slow (latency 5). e.g.
x * 40
=>
shlq $3, %rdi
leaq (%rdi,%rdi,4), %rax
This has the added benefit of allowing more multiply to be folded into addressing mode. e.g.
a * 24 + b
=>
leaq (%rdi,%rdi,2), %rax
leaq (%rsi,%rax,8), %rax
llvm-svn: 67917
|
| |
|
|
| |
llvm-svn: 67892
|
| |
|
|
| |
llvm-svn: 67881
|
| |
|
|
|
|
|
| |
default constructor produces an uninitialized APInt.
This fixes PR3896.
llvm-svn: 67879
|
| |
|
|
| |
llvm-svn: 67874
|
| |
|
|
| |
llvm-svn: 67872
|
| |
|
|
| |
llvm-svn: 67848
|
| |
|
|
| |
llvm-svn: 67846
|
| |
|
|
|
|
|
|
| |
improve TLS support (see http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090309/075220.html), but that code is VERY brittle.
This patch just makes it a bit more resistant.
llvm-svn: 67843
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a miscompilation.
make[4]: Entering directory `gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include'
if [ ! -d "./x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch" ]; then \
mkdir -p ./x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch; \
fi; \
gcc-4.2.llvm-objects/./gcc/xgcc -shared-libgcc -Bgcc-4.2.llvm-objects/./gcc -nostdinc++
-Lgcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/src -Lgcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/usr/local/gnat-llvm/x86_64-unknown-linux-gnu/bin/ -B/usr/local/gnat-llvm/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/gnat-llvm/x86_64-unknown-linux-gnu/include -isystem /usr/local/gnat-llvm/x86_64-unknown-linux-gnu/sys-include -Winvalid-pch -Wno-deprecated -x
c++-header -g -O2 -D_GNU_SOURCE -Igcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu
-Igcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include -Igcc-4.2.llvm/libstdc++-v3/libsupc++ -O2 -g
gcc-4.2.llvm/libstdc++-v3/include/precompiled/stdtr1c++.h -o x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch
In file included from gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/repeat.h:247,
from gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/functional:1098,
from gcc-4.2.llvm/libstdc++-v3/include/precompiled/stdtr1c++.h:53:
gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/functional_iterate.h:417: internal compiler error: in ggc_recalculate_in_use_p, at
ggc-page.c:1602
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.org/bugs/> for instructions.
make[4]: *** [x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch] Error 1
llvm-svn: 67839
|
| |
|
|
|
|
| |
Makes it possible to set the output file name.
llvm-svn: 67835
|
| |
|
|
|
|
| |
--shrink-wrap.
llvm-svn: 67828
|
| |
|
|
| |
llvm-svn: 67811
|
| |
|
|
| |
llvm-svn: 67798
|
| |
|
|
| |
llvm-svn: 67784
|
| |
|
|
|
|
|
| |
Detailed bug report:
http://llvm.org/bugs/show_bug.cgi?id=3873
llvm-svn: 67768
|
| |
|
|
|
|
| |
non-thumb mode.
llvm-svn: 67765
|
| |
|
|
| |
llvm-svn: 67764
|
| |
|
|
| |
llvm-svn: 67742
|
| |
|
|
| |
llvm-svn: 67739
|
| |
|
|
| |
llvm-svn: 67738
|
| |
|
|
| |
llvm-svn: 67737
|
| |
|
|
| |
llvm-svn: 67736
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
%a = ...
%b = and i32 %a, 2
%c = srl i32 %b, 1
%d = br i32 %c,
into
%a = ...
%b = and %a, 2
%c = X86ISD::CMP %b, 0
%d = X86ISD::BRCOND %c ...
This applies only when the AND constant value has one bit set and the SRL
constant is equal to the log2 of the AND constant. The back-end is smart enough
to convert the result into a TEST/JMP sequence.
llvm-svn: 67728
|
| |
|
|
| |
llvm-svn: 67727
|
| |
|
|
|
|
|
| |
called from llc, not opt, but it's an IR level
optimization nevertheless.)
llvm-svn: 67724
|
| |
|
|
|
|
| |
analysis values, related to the instructions in the basic block.
llvm-svn: 67719
|
| |
|
|
|
|
| |
Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext.
llvm-svn: 67701
|
| |
|
|
|
|
|
|
| |
stoppoint nodes around until Legalize; doing this
imposed an ordering on a sequence of loads that
came from different lines, interfering with scheduling.
llvm-svn: 67692
|
| |
|
|
|
|
|
|
|
|
|
|
| |
call, we should treat "i64 zext" as the start of a constant expr, but
"i64 0 zext" as an argument with an obsolete attribute on it (this form
is already tested by test/Assembler/2007-07-30-AutoUpgradeZextSext.ll).
Make the autoupgrade logic more discerning to avoid treating "i64 zext"
as an old-style attribute, causing us to reject a valid constant expr.
This fixes PR3876.
llvm-svn: 67682
|
| |
|
|
| |
llvm-svn: 67681
|
| |
|
|
| |
llvm-svn: 67675
|
| |
|
|
|
|
| |
default to verbose.
llvm-svn: 67668
|
| |
|
|
| |
llvm-svn: 67667
|
| |
|
|
|
|
| |
precise than it used to be.
llvm-svn: 67662
|
| |
|
|
| |
llvm-svn: 67661
|
| |
|
|
| |
llvm-svn: 67657
|
| |
|
|
| |
llvm-svn: 67649
|
| |
|
|
| |
llvm-svn: 67642
|
| |
|
|
|
|
|
|
| |
to/from integer types that are not intptr_t to convert to intptr_t
then do an integer conversion to the dest type. This exposes the
cast to the optimizer.
llvm-svn: 67638
|
| |
|
|
|
|
| |
and streamline code here a bit.
llvm-svn: 67636
|
| |
|
|
|
|
|
|
|
|
|
| |
1. Make instcombine always canonicalize trunc x to i1 into an icmp(x&1). This
exposes the AND to other instcombine xforms and is more of what the code
generator expects.
2. Rewrite the remaining trunc pattern match to use 'match', which
simplifies it a lot.
llvm-svn: 67635
|
| |
|
|
| |
llvm-svn: 67629
|
| |
|
|
|
|
| |
the target constraint specifies a specific physreg.
llvm-svn: 67618
|
| |
|
|
| |
llvm-svn: 67617
|
| |
|
|
|
|
| |
fail.
llvm-svn: 67616
|
| |
|
|
|
|
|
|
|
|
|
| |
to be returned in DL. LLVM's multiple-return-value support is
not ABI-conforming; front-ends that wish to have code emitted
that conforms to an ABI are currently expected to make
arrangements for this on their own rather than assuming that
multiple-return-values will automatically do the right thing.
This commit doesn't fundamentally change this situation.
llvm-svn: 67588
|