| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 134010
|
| |
|
|
| |
llvm-svn: 133992
|
| |
|
|
| |
llvm-svn: 133991
|
| |
|
|
| |
llvm-svn: 133988
|
| |
|
|
|
|
| |
evaluates all other IV exprs.
llvm-svn: 133982
|
| |
|
|
|
|
| |
a bit more control over the order SCEVs are evaluated.
llvm-svn: 133959
|
| |
|
|
| |
llvm-svn: 133946
|
| |
|
|
|
|
|
|
| |
alloca that only holds a copy of a global and we're going to replace the users
of the alloca with that global, just nuke the lifetime intrinsics. Part of
PR10121.
llvm-svn: 133905
|
| |
|
|
|
|
| |
-Wshorten-64-to-32 warning in Instructions.h.
llvm-svn: 133708
|
| |
|
|
|
|
|
|
|
| |
"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."
Due to some additional warnings.
llvm-svn: 133700
|
| |
|
|
| |
llvm-svn: 133636
|
| |
|
|
| |
llvm-svn: 133518
|
| |
|
|
|
|
| |
self-hosted build failure has been fixed (r133512).
llvm-svn: 133513
|
| |
|
|
|
|
|
| |
because it won't work after my phi operand changes, because the incoming
blocks will no longer be Uses.
llvm-svn: 133512
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ops.
This is a rewrite of the IV simplification algorithm used by
-disable-iv-rewrite. To avoid perturbing the default mode, I
temporarily split the driver and created SimplifyIVUsersNoRewrite. The
idea is to avoid doing opcode/pattern matching inside
IndVarSimplify. SCEV already does it. We want to optimize with the
full generality of SCEV, but optimize def-use chains top down on-demand rather
than rewriting the entire expression bottom-up. This was easy to do
for operations that SCEV can prove are identity function. So we're now
eliminating bitmasks and zero extends this way.
A result of this rewrite is that indvars -disable-iv-rewrite no longer
requires IVUsers.
llvm-svn: 133502
|
| |
|
|
| |
llvm-svn: 133499
|
| |
|
|
|
|
| |
functions do not appear in the module.
llvm-svn: 133478
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change PHINodes to store simple pointers to their incoming basic blocks,
instead of full-blown Uses.
Note that this loses an optimization in SplitCriticalEdge(), because we
can no longer walk the use list of a BasicBlock to find phi nodes. See
the comment I removed starting "However, the foreach loop is slow for
blocks with lots of predecessors".
Extend replaceAllUsesWith() on a BasicBlock to also update any phi
nodes in the block's successors. This mimics what would have happened
when PHINodes were proper Users of their incoming blocks. (Note that
this only works if OldBB->replaceAllUsesWith(NewBB) is called when
OldBB still has a terminator instruction, so it still has some
successors.)
llvm-svn: 133435
|
| |
|
|
|
|
|
|
| |
Change various bits of code to make better use of the existing PHINode
API, to insulate them from forthcoming changes in how PHINodes store
their operands.
llvm-svn: 133434
|
| |
|
|
|
|
|
|
|
|
|
|
| |
type's bitwidth matches the (allocated) size of the alloca. This severely
pessimizes vector scalar replacement when the only vector type being used is
something like <3 x float> on x86 or ARM whose allocated size matches a
<4 x float>.
I hope to fix some of the flawed assumptions about allocated size throughout
scalar replacement and reenable this in most cases.
llvm-svn: 133338
|
| |
|
|
|
|
| |
alloca. Fixes part of <rdar://problem/9580800>.
llvm-svn: 133336
|
| |
|
|
|
|
| |
unless ScalarKind is Vector.
llvm-svn: 133335
|
| |
|
|
|
|
| |
than trying to insert them immediately after the invoke.
llvm-svn: 133188
|
| |
|
|
| |
llvm-svn: 133108
|
| |
|
|
|
|
| |
terms of specific issues, using memdep here checks irrelevant instructions and won't work properly once we start returning "unknown" more aggressively from memdep.
llvm-svn: 133035
|
| |
|
|
|
|
| |
dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions.
llvm-svn: 133031
|
| |
|
|
| |
llvm-svn: 132982
|
| |
|
|
| |
llvm-svn: 132952
|
| |
|
|
| |
llvm-svn: 132940
|
| |
|
|
| |
llvm-svn: 132939
|
| |
|
|
| |
llvm-svn: 132938
|
| |
|
|
|
|
|
|
| |
spartan right now, but I plan to encode more information in this enum to improve
the correctness and reliability of SRoA. At least this first pass makes it
possible to make VectorTy an actual VectorType.
llvm-svn: 132937
|
| |
|
|
| |
llvm-svn: 132936
|
| |
|
|
| |
llvm-svn: 132767
|
| |
|
|
|
|
|
|
| |
assuming that all offsets are legal vector accesses, and thus trying to access
the float member of { <2 x float>, float } as the 3rd element of the first
member.
llvm-svn: 132766
|
| |
|
|
|
|
|
|
|
|
| |
ConvertScalar_InsertValue. The
former was using the size of the entire alloca, whereas the latter was correctly using
the allocated size of the immediate type being converted (which may differ from the size
of the alloca). This fixes PR10082.
llvm-svn: 132759
|
| |
|
|
| |
llvm-svn: 132578
|
| |
|
|
|
|
|
| |
which edge to split by pred/succ pair, which means that we can end up splitting
the wrong edge (by case value) in the switch statement entirely. Fixes PR10031!
llvm-svn: 132535
|
| |
|
|
| |
llvm-svn: 132505
|
| |
|
|
|
|
| |
MemCpyOpt::processStore. If something accesses the dest of the "copy" between the call and the copy, the performCallSlotOptzn transformation is not valid.
llvm-svn: 132485
|
| |
|
|
| |
llvm-svn: 132285
|
| |
|
|
|
|
| |
code in one place. Re-apply 131534 and fix the multi-step promotion of integers.
llvm-svn: 132217
|
| |
|
|
|
|
|
|
| |
says, it's hard to pick good line numbers for this transformation, but something is better than nothing.
rdar://9143729
llvm-svn: 132215
|
| |
|
|
|
|
|
|
| |
prevents LICM sinking from erasing debug intrinsics which don't dominate any exit block of the loop.
rdar://9143943 .
llvm-svn: 132201
|
| |
|
|
| |
llvm-svn: 132195
|
| |
|
|
| |
llvm-svn: 132194
|
| |
|
|
|
|
|
|
| |
This looks like it flagged an actual bug. Devang, please review. I added
the parentheses that change behavior, but make the behavior more closely
match commit log's intent.
llvm-svn: 132165
|
| |
|
|
| |
llvm-svn: 132164
|
| |
|
|
| |
llvm-svn: 132161
|
| |
|
|
|
|
| |
iSel may not be able to find corresponding Node for llvm.dbg.value during DAG construction. Make iSel's life easier by removing this distance between llvm.dbg.value and its value instruction.
llvm-svn: 132151
|