| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
|
|
|
|
|
| |
a loop and is itself the only dependency).
llvm-svn: 97526
|
|
|
|
|
|
|
|
| |
predecessors before returning. Otherwise, if multiple predecessor edges need
splitting, we only get one of them per iteration. This makes a small but
measurable compile time improvement with -enable-full-load-pre.
llvm-svn: 97521
|
|
|
|
| |
llvm-svn: 97512
|
|
|
|
| |
llvm-svn: 97458
|
|
|
|
| |
llvm-svn: 97453
|
|
|
|
| |
llvm-svn: 97448
|
|
|
|
| |
llvm-svn: 97366
|
|
|
|
| |
llvm-svn: 97313
|
|
|
|
|
|
| |
of a subtle interation in a loop operating in densemap order.
llvm-svn: 97288
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
confusing the old MAT variable with the new GlobalType one. This caused
us to promote the @disp global pointer into:
@disp.body = internal global double*** undef
instead of:
@disp.body = internal global [3 x double**] undef
llvm-svn: 97285
|
|
|
|
| |
llvm-svn: 97283
|
|
|
|
|
|
| |
argument of createGVNPass and set it automatically for -O3.
llvm-svn: 97245
|
|
|
|
| |
llvm-svn: 97235
|
|
|
|
| |
llvm-svn: 97231
|
|
|
|
|
|
| |
introduced when mallocinst was eliminated.
llvm-svn: 97178
|
|
|
|
|
|
|
|
|
|
|
|
| |
which branch on undef to branch on a boolean constant for the edge
exiting the loop. This helps ScalarEvolution compute trip counts for
loops.
Teach ScalarEvolution to recognize single-value PHIs, when safe, and
ForgetSymbolicName to forget such single-value PHI nodes as apprpriate
in ForgetSymbolicName.
llvm-svn: 97126
|
|
|
|
| |
llvm-svn: 97121
|
|
|
|
| |
llvm-svn: 97120
|
|
|
|
| |
llvm-svn: 97036
|
|
|
|
|
|
| |
the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap.
llvm-svn: 97027
|
|
|
|
| |
llvm-svn: 97024
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is non-null, pass it along to PHITranslateSubExpr so that it can
prefer using existing values that dominate the PredBB, instead of just
blindly picking the first equivalent value that it finds on a uselist.
Also when the DominatorTree is specified, have PHITranslateValue filter
out any result that does not dominate the PredBB. This is basically just
refactoring the check that used to be in GetAvailablePHITranslatedSubExpr
and also in GVN.
Despite my initial expectations, this change does not affect the results
of GVN for any testcases that I could find, but it should help compile time.
Before this change, if PHITranslateSubExpr picked a value that does not
dominate, PHITranslateWithInsertion would then insert a new value, which GVN
would later determine to be redundant and would replace. By picking a good
value to begin with, we save GVN the extra work of inserting and then
replacing a new value.
llvm-svn: 97010
|
|
|
|
|
|
|
|
| |
handle NaN properly.
Do (X une Y) ? X : Y -> X if one of X and Y is not zero.
llvm-svn: 96955
|
|
|
|
|
|
| |
I don't have a small testcase for this.
llvm-svn: 96890
|
|
|
|
|
|
| |
with large offset. When instcombine objsize checking transformation sees these geps where the offset seemingly point out of bound, it should just return "i don't know" rather than asserting.
llvm-svn: 96825
|
|
|
|
|
|
| |
failures from ValueTable::verifyRemoved() when using -debug.
llvm-svn: 96805
|
|
|
|
| |
llvm-svn: 96780
|
|
|
|
|
|
|
|
|
| |
induction variable value and a loop-variant value, don't force the
insert position to be at the post-increment position, because it may
not be dominated by the loop-variant value. This fixes a
use-before-def problem noticed on PPC.
llvm-svn: 96774
|