| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 99171
|
|
|
|
|
|
| |
we can reapply the InvokeInst operand reordering patch. (see r98957).
llvm-svn: 99170
|
|
|
|
|
|
|
| |
and use this (as well as getCalledValue) to access the callee,
instead of {g|s}etOperand(0).
llvm-svn: 99084
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that the SCEVExpander doesn't retain a dangling pointer as its
insert position. The dangling pointer in this case wasn't ever used
to insert new instructions, but it was causing trouble with
SCEVExpander's code for automatically advancing its insert position
past debug intrinsics.
This fixes use-after-free errors that valgrind noticed in
test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and
test/Transforms/IndVarSimplify/exit_value_tests.ll.
llvm-svn: 99036
|
|
|
|
|
|
| |
http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite
llvm-svn: 98958
|
|
|
|
|
|
|
|
|
|
|
| |
This time I did a self-hosted bootstrap on Linux x86-64,
with no problems. Let's see how darwin 64-bit self-hosting
goes. At the first sign of failure I'll back this out.
Maybe the valgrind bots give me a hint of what may be wrong
(it at all).
llvm-svn: 98957
|
|
|
|
|
|
| |
Thanks to Duncan for spotting my mistake.
llvm-svn: 98671
|
|
|
|
| |
llvm-svn: 98663
|
|
|
|
| |
llvm-svn: 98584
|
|
|
|
| |
llvm-svn: 98581
|
|
|
|
|
|
| |
value intrinsics are present in this bb. Use terminator to find return instructions.
llvm-svn: 98565
|
|
|
|
| |
llvm-svn: 98491
|
|
|
|
| |
llvm-svn: 98490
|
|
|
|
| |
llvm-svn: 98376
|
|
|
|
|
|
| |
to unify the almost identical code in CodeGenPrepare and InstCombineCalls.
llvm-svn: 98338
|
|
|
|
| |
llvm-svn: 98297
|
|
|
|
| |
llvm-svn: 98296
|
|
|
|
|
|
| |
__strcpy_chk -> strcpy code.
llvm-svn: 98284
|
|
|
|
| |
llvm-svn: 98274
|
|
|
|
| |
llvm-svn: 98260
|
|
|
|
|
|
|
|
| |
that in InstCombineCalls.
More call lowering needed.
llvm-svn: 98228
|
|
|
|
| |
llvm-svn: 98219
|
|
|
|
|
|
|
| |
compute a set of reachable blocks for itself each time it is called, which
is fairly frequently.
llvm-svn: 98179
|
|
|
|
| |
llvm-svn: 98122
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
This is a more conservative version of r98089 that doesn't break the clang
test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
for constant folding.
llvm-svn: 98099
|
|
|
|
| |
llvm-svn: 98094
|
|
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
llvm-svn: 98089
|
|
|
|
| |
llvm-svn: 98024
|
|
|
|
| |
llvm-svn: 98000
|
|
|
|
|
|
| |
This is a first step towards eliminating checks in Descriptor constructors.
llvm-svn: 97975
|
|
|
|
| |
llvm-svn: 97963
|
|
|
|
|
|
| |
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.
llvm-svn: 97947
|
|
|
|
|
|
| |
before we try to optimize.
llvm-svn: 97876
|
|
|
|
|
|
|
|
| |
out the remainder of the calls that we should lower in some way and
move the tests to the new correct directory. Fix up tests that are now
optimized more than they were before by -instcombine.
llvm-svn: 97875
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Log:
Transform @llvm.objectsize to integer if the argument is a result of malloc of known size.
Modified:
llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp
llvm/trunk/test/Transforms/InstCombine/objsize.ll
It appears to be causing swb and nightly test failures.
llvm-svn: 97866
|
|
|
|
|
|
| |
of known size.
llvm-svn: 97860
|
|
|
|
| |
llvm-svn: 97846
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
>= memset / memcpy / memmove size.
llvm-svn: 97828
|
|
|
|
|
|
| |
integer.
llvm-svn: 97827
|
|
|
|
|
|
| |
from different addr spaces.
llvm-svn: 97813
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the following Intrinsic::bswap code. I have no idea why it wasn't breaking stuff.
llvm-svn: 97774
|
|
|
|
|
|
| |
of loops.
llvm-svn: 97642
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
long test(long x) { return (x & 123124) | 3; }
Currently compiles to:
_test:
orl $3, %edi
movq %rdi, %rax
andq $123127, %rax
ret
This is because instruction and DAG combiners canonicalize
(or (and x, C), D) -> (and (or, D), (C | D))
However, this is only profitable if (C & D) != 0. It gets in the way of the
3-addressification because the input bits are known to be zero.
llvm-svn: 97616
|
|
|
|
|
|
|
| |
emitted after the increment. Make sure the insert position
reflects this. This fixes PR6453.
llvm-svn: 97537
|
|
|
|
|
|
| |
respectively.
llvm-svn: 97531
|