| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
identical to the smul.with.overflow() code.
llvm-svn: 128379
|
| |
|
|
| |
llvm-svn: 128149
|
| |
|
|
|
|
| |
and whose address is never taken is a non-escaping local object and can't alias anything else.
llvm-svn: 128140
|
| |
|
|
| |
llvm-svn: 128028
|
| |
|
|
|
|
|
|
| |
For example, on 32-bit architecture, don't promote all uses of the IV
to 64-bits just because one use is a 64-bit cast.
Alternate implementation of the patch by Arnaud de Grandmaison.
llvm-svn: 127884
|
| |
|
|
|
|
|
|
|
| |
SCEV may generate expressions composed of multiple pointers, which can
lead to invalid GEP expansion. Until we can teach SCEV to follow strict
pointer rules, make sure no bad GEPs creep into IR.
Fixes rdar://problem/9038671.
llvm-svn: 127839
|
| |
|
|
| |
llvm-svn: 127801
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
memory builtins as equivalent to malloc/free.
This is different from any attribute we have. For example, you can delete the
allocators when their result is unused, but you can't collapse two calls to the
same function, even if no global/memory state has changed in between. The
noalias return states that the result does not alias any other pointer, but
instcombine optimizes malloc() as though the result is non-null for the purpose
of eliminating unused pointers.
llvm-svn: 127673
|
| |
|
|
|
|
|
| |
This function performed acrobatics to prove no-self-wrap, which we now
have for free.
llvm-svn: 127643
|
| |
|
|
|
|
| |
This needs review.
llvm-svn: 127638
|
| |
|
|
| |
llvm-svn: 127593
|
| |
|
|
|
|
| |
no-self-wrap.
llvm-svn: 127591
|
| |
|
|
|
|
|
|
|
| |
properties.
Added the self-wrap flag for SCEV::AddRecExpr.
A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag
without changing behavior in this revision.
llvm-svn: 127590
|
| |
|
|
| |
llvm-svn: 127548
|
| |
|
|
|
|
|
|
| |
overflow semantics as add.
Should fix the selfhost failures that started with r127463.
llvm-svn: 127465
|
| |
|
|
|
|
|
| |
do with nuw here, but sub and mul should be given similar treatment.
Fixes PR9343 #15!
llvm-svn: 127463
|
| |
|
|
|
|
|
|
|
|
|
|
| |
treating debugging information.
It generates output that lools like
8 times line number info lost by Scalar Replacement of Aggregates (SSAUp)
1 times line number info lost by Simplify well-known library calls
12 times variable info lost by Jump Threading
llvm-svn: 127381
|
| |
|
|
|
|
|
|
| |
When ExactBECount is a constant, use it for MaxBECount.
When MaxBECount cannot be computed, replace it with ExactBECount.
Fixes PR9424.
llvm-svn: 127342
|
| |
|
|
| |
llvm-svn: 127340
|
| |
|
|
|
|
| |
Thanks Duncan Sands!
llvm-svn: 127323
|
| |
|
|
|
|
|
|
|
| |
gave up when I realized I couldn't come up with a good name for what the
refactored function would be, to describe what it does.
This is PR9343 test12, which is test3 with arguments reordered. Whoops!
llvm-svn: 127318
|
| |
|
|
| |
llvm-svn: 127243
|
| |
|
|
|
|
|
| |
then the result could go either way. If it's provably positive then so is the
srem. Fixes PR9343 #7!
llvm-svn: 127146
|
| |
|
|
|
|
|
|
|
| |
possible. This goes into instcombine and instsimplify because instsimplify
doesn't need to check hasOneUse since it returns (almost exclusively) constants.
This fixes PR9343 #4 #5 and #8!
llvm-svn: 127064
|
| |
|
|
|
|
|
| |
bitcasts, which are really no-ops here. This fixes slowdowns on
MultiSource/Applications/aha and others.
llvm-svn: 127031
|
| |
|
|
| |
llvm-svn: 127021
|
| |
|
|
|
|
|
| |
in the urem case, though not the other way around. This is enough to get #3 from
PR9343!
llvm-svn: 126991
|
| |
|
|
|
|
|
|
|
| |
"icmp pred %X, CI" and a number of examples where "%X = binop %Y, CI2".
Some of these cases (div and rem) used to make it through opt -O2, but the
others are probably now making code elsewhere redundant (probably instcombine).
llvm-svn: 126988
|
| |
|
|
| |
llvm-svn: 126871
|
| |
|
|
|
|
| |
This fixes PR9259.
llvm-svn: 126812
|
| |
|
|
|
|
|
|
| |
encode arguments' debug info, in order any way, most of the times. However, if a front end mix-n-matches llvm.dbg.declare and llvm.dbg.value intrinsics to encode debug info for arguments then code generator needs a way to find argument order.
Use 8 bits from line number field to keep track of argument ordering while encoding debug info for an argument. That leaves 24 bit for line no, DebugLoc also allocates 24 bit for line numbers. If a function has more than 255 arguments then rest of the arguments will be ordered by llvm.dbg.* intrinsics' ordering in IR.
llvm-svn: 126793
|
| |
|
|
|
|
|
| |
more work to do here, "icmp ult (urem X, 10), 11" doesn't optimize away yet.
Fixes example 3 from PR9343!
llvm-svn: 126741
|
| |
|
|
| |
llvm-svn: 126717
|
| |
|
|
|
|
| |
was started for in the foreseeable future.
llvm-svn: 126668
|
| |
|
|
| |
llvm-svn: 126645
|
| |
|
|
|
|
|
| |
also have a zero when numerator = denominator. Reverts parts of r126635 and
r126637.
llvm-svn: 126644
|
| |
|
|
| |
llvm-svn: 126642
|
| |
|
|
|
|
| |
srem instruction.
llvm-svn: 126637
|
| |
|
|
| |
llvm-svn: 126564
|
| |
|
|
|
|
| |
clang uses DBuilder, so it requries corresponding change.
llvm-svn: 126231
|
| |
|
|
| |
llvm-svn: 126082
|
| |
|
|
|
|
| |
them as splat values.
llvm-svn: 126041
|
| |
|
|
| |
llvm-svn: 125968
|
| |
|
|
| |
llvm-svn: 125571
|
| |
|
|
| |
llvm-svn: 125567
|
| |
|
|
| |
llvm-svn: 125537
|
| |
|
|
|
|
| |
builders unhappy.
llvm-svn: 125504
|
| |
|
|
|
|
| |
idiom. Change various clients to simplify their code.
llvm-svn: 125487
|
| |
|
|
| |
llvm-svn: 125463
|
| |
|
|
|
|
|
|
| |
plus some variations of this. According to my auto-simplifier this occurs a lot
but usually in combination with max/min idioms. Because max/min aren't handled
yet this unfortunately doesn't have much effect in the testsuite.
llvm-svn: 125462
|