History log of /llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp (Results 1851 – 1875 of 2089)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e9a38d16 02-May-2009 Dan Gohman <gohman@apple.com>

Convert ScalarEvolution to use CallbackVH for its internal map. This
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessar

Convert ScalarEvolution to use CallbackVH for its internal map. This
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.

It also makes ValueDeletionListener unnecessary.

llvm-svn: 70645

show more ...


# f150572a 02-May-2009 Dan Gohman <gohman@apple.com>

When ScalarEvolution is told to forget the trip count for a loop, have
it also forget any SCEVs associated with loop-header PHIs in the loop,
as they may be dependent on trip count information.

llvm

When ScalarEvolution is told to forget the trip count for a loop, have
it also forget any SCEVs associated with loop-header PHIs in the loop,
as they may be dependent on trip count information.

llvm-svn: 70633

show more ...


# 7227bc88 01-May-2009 Dan Gohman <gohman@apple.com>

When printing a SCEVUnknown with pointer type, don't print an
artificial "ptrtoint", as it tends to clutter up complicated
expressions. The cast operators now print both source and
destination types,

When printing a SCEVUnknown with pointer type, don't print an
artificial "ptrtoint", as it tends to clutter up complicated
expressions. The cast operators now print both source and
destination types, which is usually sufficient.

llvm-svn: 70554

show more ...


# 90f73564 01-May-2009 Dan Gohman <gohman@apple.com>

Fix an 80-column violation.

llvm-svn: 70550


# 194e42c6 01-May-2009 Dan Gohman <gohman@apple.com>

When creating cast scevs, canonicalize the destination type. This
avoids duplicate scevs that differ only in type.

llvm-svn: 70549


# 83aec26e 01-May-2009 Torok Edwin <edwintorok@gmail.com>

hasSCEV() was declared in ScalarEvolution.h, but never defined. This must have
gone lost during the pImpl conversion.

llvm-svn: 70536


# fa066ef1 30-Apr-2009 Dan Gohman <gohman@apple.com>

Add some comments, and tidy up some whitespace.

llvm-svn: 70510


# 2b8da35f 30-Apr-2009 Dan Gohman <gohman@apple.com>

Extend ScalarEvolution's getBackedgeTakenCount to be able to
compute an upper-bound value for the trip count, in addition to
the actual trip count. Use this to allow getZeroExtendExpr and
getSignExte

Extend ScalarEvolution's getBackedgeTakenCount to be able to
compute an upper-bound value for the trip count, in addition to
the actual trip count. Use this to allow getZeroExtendExpr and
getSignExtendExpr to fold casts in more cases.

This may eventually morph into a more general value-range
analysis capability; there are certainly plenty of places where
more complete value-range information would allow more folding.

llvm-svn: 70509

show more ...


# 4bafc421 30-Apr-2009 Dan Gohman <gohman@apple.com>

Don't try to mix integers and pointers in an icmp instruction
in getSCEVAtScope.

llvm-svn: 70495


# 7216b9da 30-Apr-2009 Dan Gohman <gohman@apple.com>

Fix ScalarEvolution::print to print a value for any Instruction with
a SCEVable type, not just integer types.

llvm-svn: 70463


# 0098d01e 29-Apr-2009 Dan Gohman <gohman@apple.com>

Implement getSCEVAtScope for SCEV cast expressions.

llvm-svn: 70422


# 494dac3f 29-Apr-2009 Dan Gohman <gohman@apple.com>

Generalize the cast-of-addrec folding to handle folding of SCEVs like
(sext i8 {-128,+,1} to i64) to i64 {-128,+,1}, where the iteration
crosses from negative to positive, but is still safe if the tr

Generalize the cast-of-addrec folding to handle folding of SCEVs like
(sext i8 {-128,+,1} to i64) to i64 {-128,+,1}, where the iteration
crosses from negative to positive, but is still safe if the trip
count is within range.

llvm-svn: 70421

show more ...


# d9b11b2e 29-Apr-2009 Dan Gohman <gohman@apple.com>

Include the source type in SCEV cast expression debug output, and
print sext, zext, and trunc, instead of signextend, zeroextend,
and truncate, respectively, for consistency with the main IR.

llvm-s

Include the source type in SCEV cast expression debug output, and
print sext, zext, and trunc, instead of signextend, zeroextend,
and truncate, respectively, for consistency with the main IR.

llvm-svn: 70405

show more ...


# b0bc5c2f 29-Apr-2009 Dale Johannesen <dalej@apple.com>

Fix recent regression in gcc.dg/pr26719.c (6835035).

llvm-svn: 70386


# 95c5b0e5 29-Apr-2009 Dan Gohman <gohman@apple.com>

Update comments to reflect the current code.

llvm-svn: 70357


# 76466373 27-Apr-2009 Dan Gohman <gohman@apple.com>

Teach getZeroExtendExpr and getSignExtendExpr to use trip-count
information to simplify [sz]ext({a,+,b}) to {zext(a),+,[zs]ext(b)},
as appropriate.

These functions and the trip count code each call

Teach getZeroExtendExpr and getSignExtendExpr to use trip-count
information to simplify [sz]ext({a,+,b}) to {zext(a),+,[zs]ext(b)},
as appropriate.

These functions and the trip count code each call into the other, so
this requires careful handling to avoid infinite recursion. During
the initial trip count computation, conservative SCEVs are used,
which are subsequently discarded once the trip count is actually
known.

Among other benefits, this change lets LSR automatically eliminate
some unnecessary zext-inreg and sext-inreg operation where the
operand is an induction variable.

llvm-svn: 70241

show more ...


# 05c1d372 27-Apr-2009 Dan Gohman <gohman@apple.com>

Handle ands with ~0 correctly too. This fixes PR4052.

llvm-svn: 70176


# df19948e 25-Apr-2009 Dan Gohman <gohman@apple.com>

Handle ands with 0 and shifts by 0 correctly. These aren't
common, but indvars shouldn't crash on them. This fixes PR4054.

llvm-svn: 70051


# b4d9f7a9 23-Apr-2009 Nick Lewycky <nicholas@mxc.ca>

Simplify trunc(extend(x)) in SCEVs, just for completeness. Also fix some odd
whitespace in the same file.

llvm-svn: 69870


# 79af854f 22-Apr-2009 Dan Gohman <gohman@apple.com>

Simplify trivial cast-of-cast SCEVs.

llvm-svn: 69809


# c8e23627 21-Apr-2009 Dan Gohman <gohman@apple.com>

De-pImpl-ify ScalarEvolution. The pImpl pattern doesn't provide much
practical benefit in the case of ScalarEvolution, and it's otherwise
a nuisance.

llvm-svn: 69749


# e14efcc9 21-Apr-2009 Dan Gohman <gohman@apple.com>

When turning (ashr(shl(x, n), n)) into sext(trunc(x)), the width of the
type to truncate to should be the number of bits of the value that are
preserved, not the number that are clobbered with sign-e

When turning (ashr(shl(x, n), n)) into sext(trunc(x)), the width of the
type to truncate to should be the number of bits of the value that are
preserved, not the number that are clobbered with sign-extension.
This fixes regressions in ldecod.

llvm-svn: 69704

show more ...


# 0ec05374 21-Apr-2009 Dan Gohman <gohman@apple.com>

Teach ScalarEvolution how to recognize zext-inreg and sext-inreg,
as they appear in LLVM IR. This isn't particularly interesting
on its own; this is just setting up some infrastructure.

llvm-svn: 69

Teach ScalarEvolution how to recognize zext-inreg and sext-inreg,
as they appear in LLVM IR. This isn't particularly interesting
on its own; this is just setting up some infrastructure.

llvm-svn: 69655

show more ...


# c4938497 21-Apr-2009 Dan Gohman <gohman@apple.com>

This FIXME is fixed, now that SCEV understands pointers.

llvm-svn: 69651


# 4860db61 21-Apr-2009 Dan Gohman <gohman@apple.com>

Factor out a common base class from SCEVTruncateExpr, SCEVZeroExtendExpr,
and SCEVSignExtendExpr.

llvm-svn: 69649


1...<<71727374757677787980>>...84