History log of /llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp (Results 1501 – 1525 of 2089)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5c901f34 19-Jan-2011 Nick Lewycky <nicholas@mxc.ca>

Similarly, analyze truncate through multiply.

llvm-svn: 123842


# 5143f0f0 19-Jan-2011 Nick Lewycky <nicholas@mxc.ca>

Add a missed SCEV fold that is required to continue analyzing the IR produced
by indvars through the scev expander.

trunc(add x, y) --> add(trunc x, y). Currently SCEV largely folds the other way
wh

Add a missed SCEV fold that is required to continue analyzing the IR produced
by indvars through the scev expander.

trunc(add x, y) --> add(trunc x, y). Currently SCEV largely folds the other way
which is probably wrong, but preserved to minimize churn. Instcombine doesn't
do this fold either, demonstrating a missed optz'n opportunity on code doing
add+trunc+add.

llvm-svn: 123838

show more ...


# e9ea75e3 19-Jan-2011 Nick Lewycky <nicholas@mxc.ca>

Add a missing SCEV simplification sext(zext x) --> zext x.

llvm-svn: 123832


# d30de955 11-Jan-2011 Chris Lattner <sabre@nondot.org>

some comment improvements.

llvm-svn: 123243


# 23bf3baf 11-Jan-2011 Eric Christopher <echristo@apple.com>

Temporarily revert 123133, it's causing some regressions and I'm trying
to get a testcase.

llvm-svn: 123225


# 23109cb3 11-Jan-2011 Chris Lattner <sabre@nondot.org>

the GEP faq says that only inbounds geps are guaranteed to not overflow.

llvm-svn: 123218


# 67f82314 09-Jan-2011 Chris Lattner <sabre@nondot.org>

add a fixme: ir isn't expressive enough.

llvm-svn: 123139


# 28f140a3 09-Jan-2011 Chris Lattner <sabre@nondot.org>

Step #4 in improving trip count analysis: HowFarToZero can analyze
NUW AddRec's much more aggressively. We now get a trip count
for @test2 in nsw.ll

llvm-svn: 123138


# dff679f4 09-Jan-2011 Chris Lattner <sabre@nondot.org>

rearrange some code, no functionality change.

llvm-svn: 123136


# a44274cb 09-Jan-2011 Chris Lattner <sabre@nondot.org>

Step #3 to improving trip count analysis: If we fold
a + {b,+,stride} into {a+b,+,stride} (because a is LIV),
then the resultant AddRec is NUW/NSW if the client says it
is.

llvm-svn: 123133


# fc87752d 09-Jan-2011 Chris Lattner <sabre@nondot.org>

Step #2 to improve trip count analysis for loops like this:

void f(int* begin, int* end) { std::fill(begin, end, 0); }

which turns into a != exit expression where one pointer is
strided and (thanks

Step #2 to improve trip count analysis for loops like this:

void f(int* begin, int* end) { std::fill(begin, end, 0); }

which turns into a != exit expression where one pointer is
strided and (thanks to step #1) known to not overflow, and
the other is loop invariant.

The observation here is that, though the IV is strided by
4 in this case, that the IV *has* to become equal to the
end value. It cannot "miss" the end value by stepping over
it, because if it did, the strided IV expression would
eventually wrap around.

Handle this by turning A != B into "A-B != 0" where the A-B
part is known to be NUW.

llvm-svn: 123131

show more ...


# 10223a3f 09-Jan-2011 Chris Lattner <sabre@nondot.org>

teach SCEV analysis of PHI nodes that PHI recurences formed
with GEP instructions are always NUW, because PHIs cannot wrap
the end of the address space.

llvm-svn: 123105


# a337f5ec 09-Jan-2011 Chris Lattner <sabre@nondot.org>

reduce indentation. Print <nuw> and <nsw> when dumping SCEV AddRec's
that have the bit set.

llvm-svn: 123104


# 583abbc4 07-Dec-2010 Jay Foad <jay.foad@gmail.com>

PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead

PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.

llvm-svn: 121120

show more ...


# 25a5e4ca 01-Dec-2010 Jay Foad <jay.foad@gmail.com>

PR5207: Rename overloaded APInt methods set(), clear(), flip() to
setAllBits(), setBit(unsigned), etc.

llvm-svn: 120564


# ddd1b7b8 20-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com>

Simplify code. No change in functionality.

llvm-svn: 119908


# c77ebcc9 19-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com>

Silence warning about an uninitialized variable.

llvm-svn: 119800


# aef146b8 18-Nov-2010 Duncan Sands <baldrick@free.fr>

Factor code for testing whether replacing one value with another
preserves LCSSA form out of ScalarEvolution and into the LoopInfo
class. Use it to check that SimplifyInstruction simplifications
are

Factor code for testing whether replacing one value with another
preserves LCSSA form out of ScalarEvolution and into the LoopInfo
class. Use it to check that SimplifyInstruction simplifications
are not breaking LCSSA form. Fixes PR8622.

llvm-svn: 119727

show more ...


# 8ea83d81 18-Nov-2010 Dan Gohman <gohman@apple.com>

Introduce memoization for ScalarEvolution dominates and properlyDominates
queries, and SCEVExpander getRelevantLoop queries.

llvm-svn: 119595


# 7e6b393e 17-Nov-2010 Dan Gohman <gohman@apple.com>

Factor out the code for purging a SCEV from all the various memoization maps.
Some of these maps may merge in the future, but for now it's convenient to have
a utility function for them.

llvm-svn: 1

Factor out the code for purging a SCEV from all the various memoization maps.
Some of these maps may merge in the future, but for now it's convenient to have
a utility function for them.

llvm-svn: 119587

show more ...


# 7ee1bbb7 17-Nov-2010 Dan Gohman <gohman@apple.com>

Merge the implementations of isLoopInvariant and hasComputableLoopEvolution, and
memoize the results. This improves compile time in code which highly complex
expressions which get queried many times.

Merge the implementations of isLoopInvariant and hasComputableLoopEvolution, and
memoize the results. This improves compile time in code which highly complex
expressions which get queried many times.

llvm-svn: 119584

show more ...


# 534749bf 17-Nov-2010 Dan Gohman <gohman@apple.com>

Make SCEV::getType() and SCEV::print non-virtual. Move SCEV::hasOperand
to ScalarEvolution. Delete SCEV::~SCEV. SCEV is no longer virtual.

llvm-svn: 119578


# 20d9ce21 17-Nov-2010 Dan Gohman <gohman@apple.com>

Move SCEV::dominates and properlyDominates to ScalarEvolution.

llvm-svn: 119570


# afd6db99 17-Nov-2010 Dan Gohman <gohman@apple.com>

Move SCEV::isLoopInvariant and hasComputableLoopEvolution to be member
functions of ScalarEvolution, in preparation for memoization and
other optimizations.

llvm-svn: 119562


# 39d77131 17-Nov-2010 Duncan Sands <baldrick@free.fr>

Before replacing a phi node with a different value, it
needs to be checked that this won't break LCSSA form.
Change the existing checking method to a more direct one:
rather than seeing if all predec

Before replacing a phi node with a different value, it
needs to be checked that this won't break LCSSA form.
Change the existing checking method to a more direct one:
rather than seeing if all predecessors belong to the loop,
check that the replacing value is either not in any loop or
is in a loop that contains the phi node.

llvm-svn: 119556

show more ...


1...<<61626364656667686970>>...84