| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
ConstantRange(0, 0) creates an empty range rather than a full one.
llvm-svn: 100993
|
|
|
|
|
|
|
| |
that it's only testing for the entry condition, not full loop-invariant
conditions.
llvm-svn: 100979
|
|
|
|
| |
llvm-svn: 100824
|
|
|
|
|
|
|
| |
undef as 0, since it can't force other analyses to intepret the undef
in the same way.
llvm-svn: 100749
|
|
|
|
|
|
|
| |
RecyclingAllocator to allow client code to be simpler, and
simplify several clients.
llvm-svn: 98847
|
|
|
|
|
|
|
|
|
|
|
|
| |
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
llvm-svn: 98829
|
|
|
|
| |
llvm-svn: 98793
|
|
|
|
| |
llvm-svn: 98762
|
|
|
|
|
|
|
|
|
|
| |
pointer and length, and allocate the arrays in ScalarEvolution's
BumpPtrAllocator, so that they get released when their owning
SCEV gets released. SCEVs are immutable, so they don't need to worry
about operand array resizing. This fixes a memory leak reported
in PR6637.
llvm-svn: 98755
|
|
|
|
|
|
| |
They are lots of trouble, and they don't matter. This fixes PR6559.
llvm-svn: 98103
|
|
|
|
| |
llvm-svn: 97453
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
didn't fold anything.
llvm-svn: 97049
|
|
|
|
| |
llvm-svn: 97048
|
|
|
|
| |
llvm-svn: 97042
|
|
|
|
| |
llvm-svn: 96780
|
|
|
|
| |
llvm-svn: 96688
|
|
|
|
|
|
|
|
| |
true or false as its exit condition. These are usually eliminated by
SimplifyCFG, but the may be left around during a pass which wishes
to preserve the CFG.
llvm-svn: 96683
|
|
|
|
|
|
| |
to be spurious
llvm-svn: 96662
|
|
|
|
| |
llvm-svn: 96653
|
|
|
|
|
|
|
|
| |
a loop exit value, so that if a loop gets deleted, ScalarEvolution
isn't stick holding on to dangling SCEVAddRecExprs for that loop. This
fixes PR6339.
llvm-svn: 96626
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
|
|
|
|
| |
name, test whether the SCEV itself is that temporary symbolic name,
in addition to checking whether the symbolic name appears as a
possibly-indirect operand.
llvm-svn: 96216
|
|
|
|
|
|
|
| |
SCEVAddRecExpr doesn't necessarily dominate blocks merely dominated
by all of its operands. This fixes an abort compiling 403.gcc.
llvm-svn: 96056
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
|
|
|
| |
than int. This will make it more convenient for LSR, which does
a lot of things with int64_t offsets.
llvm-svn: 95281
|
|
|
|
| |
llvm-svn: 95044
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.
Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.
Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.
And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.
llvm-svn: 94987
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use plain SCEVUnknowns with ConstantExpr::getSizeOf and
ConstantExpr::getOffsetOf constants. This eliminates a bunch of
special-case code.
Also add code for pattern-matching these expressions, for clients that
want to recognize them.
Move ScalarEvolution's logic for expanding array and vector sizeof
expressions into an element count times the element size, to expose
the multiplication to subsequent folding, into the regular constant
folder.
llvm-svn: 94737
|
|
|
|
|
|
| |
and clean up some loose ends.
llvm-svn: 94572
|
|
|
|
| |
llvm-svn: 94562
|
|
|
|
|
|
| |
than an iteration count.
llvm-svn: 94549
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
have trouble with an intermediate add overflowing. Also, be more conservative
about the case where the induction variable in an SLT loop exit can step past
the RHS of the SLT and overflow in a single step.
Make getSignedRange more aggressive, to recover for some common cases which
the above fixes pessimized.
This addresses rdar://7561161.
llvm-svn: 94512
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new version is much more aggressive about doing "full" reduction in
cases where it reduces register pressure, and also more aggressive about
rewriting induction variables to count down (or up) to zero when doing so
reduces register pressure.
It currently uses fairly simplistic algorithms for finding reuse
opportunities, but it introduces a new framework allows it to combine
multiple strategies at once to form hybrid solutions, instead of doing
all full-reduction or all base+index.
llvm-svn: 94061
|
|
|
|
| |
llvm-svn: 93932
|
|
|
|
|
|
| |
to make more intellegent AddRec folding decisions.
llvm-svn: 93930
|
|
|
|
|
|
| |
so that unnamed blocks are handled.
llvm-svn: 93059
|
|
|
|
|
|
| |
other files to compensate.
llvm-svn: 92075
|
|
|
|
|
|
| |
s/errs/dbgs/g except for certain special cases.
llvm-svn: 92067
|
|
|
|
| |
llvm-svn: 91742
|
|
|
|
| |
llvm-svn: 91722
|
|
|
|
|
|
| |
associative either.
llvm-svn: 91701
|
|
|
|
|
|
| |
is not reassociative.
llvm-svn: 91667
|
|
|
|
| |
llvm-svn: 91659
|
|
|
|
| |
llvm-svn: 91656
|
|
|
|
|
|
|
|
| |
contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654
|
|
|
|
| |
llvm-svn: 91651
|
|
|
|
| |
llvm-svn: 89641
|
|
|
|
|
|
| |
and ConstantFoldCompareInstOperands.
llvm-svn: 86626
|