| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 86180
|
|
|
|
|
|
| |
clears out more information than just the stored backedge taken count.
llvm-svn: 85664
|
|
|
|
|
|
|
| |
the loop exiting block dominates the latch block; if ScalarEvolution
can prove that the trip-count is finite, that's sufficient.
llvm-svn: 85165
|
|
|
|
|
|
|
| |
exact backedge taken count, when checking for infinite loops. This allows
it to delete loops with multiple exit conditions.
llvm-svn: 84952
|
|
|
|
| |
llvm-svn: 80766
|
|
|
|
|
|
| |
and use this to simplify more code.
llvm-svn: 75722
|
|
|
|
|
|
|
| |
This way ScalarEvolution can examine the loop to determine what state
it needs to update, if it chooses.
llvm-svn: 75029
|
|
|
|
| |
llvm-svn: 74918
|
|
|
|
| |
llvm-svn: 73906
|
|
|
|
|
|
|
|
| |
the optimizers about this. For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.
llvm-svn: 71071
|
|
|
|
|
|
|
|
|
|
|
|
| |
CallbackVH, with fixes. allUsesReplacedWith need to
walk the def-use chains and invalidate all users of a
value that is replaced. SCEVs of users need to be
recalcualted even if the new value is equivalent. Also,
make forgetLoopPHIs walk def-use chains, since any
SCEV that depends on a PHI should be recalculated when
more information about that PHI becomes available.
llvm-svn: 70927
|
|
|
|
| |
llvm-svn: 70661
|
|
|
|
|
|
|
|
|
| |
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645
|
|
|
|
|
|
|
| |
deleting it. This will let ScalarEvolution be more complete about
updating its records.
llvm-svn: 70632
|
|
|
|
|
|
|
|
|
| |
to more accurately describe what it does. Expand its doxygen comment
to describe what the backedge-taken count is and how it differs
from the actual iteration count of the loop. Adjust names and
comments in associated code accordingly.
llvm-svn: 65382
|
|
|
|
| |
llvm-svn: 65359
|
|
|
|
|
|
|
|
| |
so that ScalarEvolution doesn't hang onto a dangling Loop*, which
could be a problem if another Loop happens to get allocated at the
same address.
llvm-svn: 65323
|
|
|
|
|
|
|
|
|
|
|
| |
LoopPass*.
- Although less precise, this means they can be used in clients
without RTTI (who would otherwise need to include LoopPass.h, which
eventually includes things using dynamic_cast). This was the
simplest solution that presented itself, but I am happy to use a
better one if available.
llvm-svn: 58010
|
|
|
|
| |
llvm-svn: 55779
|
|
|
|
| |
llvm-svn: 52651
|
|
|
|
| |
llvm-svn: 51666
|
|
|
|
|
|
|
| |
Also, use SCEV to determine the trip count of the loop, which is more powerful
and accurate that Loop::getTripCount.
llvm-svn: 51179
|
|
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
|
|
|
|
|
| |
Patch by Matthijs Kooijman!
llvm-svn: 50861
|
|
|
|
|
|
| |
really should come up with better names for these.
llvm-svn: 50770
|
|
|
|
| |
llvm-svn: 50473
|
|
|
|
|
|
|
|
| |
case fixes. Most
of this was suggested by Chris.
llvm-svn: 50441
|
|
|
|
| |
llvm-svn: 50437
|
|
llvm-svn: 50436
|