History log of /llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (Results 476 – 500 of 753)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-2.9.0-rc1
# 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


# 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


# 6c18d1aa 19-Oct-2010 Owen Anderson <resistor@mac.com>

Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency

Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.

Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.

I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.

llvm-svn: 116820

show more ...


# 8ac477ff 12-Oct-2010 Owen Anderson <resistor@mac.com>

Begin adding static dependence information to passes, which will allow us to
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, pas

Begin adding static dependence information to passes, which will allow us to
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve. I hope to be able to relax
the latter requirement in the future.

llvm-svn: 116334

show more ...


# df7a4f25 07-Oct-2010 Owen Anderson <resistor@mac.com>

Now with fewer extraneous semicolons!

llvm-svn: 115996


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2
# aaa22cf1 18-Sep-2010 Gabor Greif <ggreif@gmail.com>

do not rely on the implicit-dereference semantics of dyn_cast_or_null

llvm-svn: 114277


Revision tags: llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0
# a7aed186 06-Aug-2010 Owen Anderson <resistor@mac.com>

Reapply r110396, with fixes to appease the Linux buildbot gods.

llvm-svn: 110460


# bda59bd2 06-Aug-2010 Owen Anderson <resistor@mac.com>

Revert r110396 to fix buildbots.

llvm-svn: 110410


# 755aceb5 05-Aug-2010 Owen Anderson <resistor@mac.com>

Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.

llvm-svn: 110396


# dde79d8f 22-Jul-2010 Gabor Greif <ggreif@gmail.com>

mass elimination of reliance on automatic iterator dereferencing

llvm-svn: 109103


# a57b97e7 21-Jul-2010 Owen Anderson <resistor@mac.com>

Fix batch of converting RegisterPass<> to INTIALIZE_PASS().

llvm-svn: 109045


# 12725c7d 20-Jul-2010 Dan Gohman <gohman@apple.com>

Remember that the induction variable is always a PHINode and
use getIncomingValueForBlock instead of
LoopInfo::getCanonicalInductionVariableIncrement.

llvm-svn: 108865


# e82532a1 09-Jul-2010 Gabor Greif <ggreif@gmail.com>

cache result of operator*

llvm-svn: 107976


# f3aea7ae 18-Jun-2010 Dan Gohman <gohman@apple.com>

Disable indvars on loops when LoopSimplify form is not available.
This fixes PR7333.

llvm-svn: 106267


# 1d2ded75 03-May-2010 Dan Gohman <gohman@apple.com>

Use getConstant instead of getIntegerSCEV. The two are basically the
same, now that getConstant has overloads consistent with ConstantInt::get.

llvm-svn: 102965


Revision tags: llvmorg-2.7.0
# 5867a56d 13-Apr-2010 Dan Gohman <gohman@apple.com>

Teach IndVarSimplify how to eliminate remainder operators where the
numerator is an induction variable. For example, with code like this:

for (i=0;i<n;++i)
x[i%n] = 0;

IndVarSimplify will now

Teach IndVarSimplify how to eliminate remainder operators where the
numerator is an induction variable. For example, with code like this:

for (i=0;i<n;++i)
x[i%n] = 0;

IndVarSimplify will now recognize that i is always less than n inside
the loop, and eliminate the remainder.

llvm-svn: 101113

show more ...


# 4a645b88 12-Apr-2010 Dan Gohman <gohman@apple.com>

Suppress LinearFunctionTestReplace when the computed backedge-taken
expression is a UDiv and it doesn't appear that the UDiv came from
the user's source.

ScalarEvolution has recently figured out how

Suppress LinearFunctionTestReplace when the computed backedge-taken
expression is a UDiv and it doesn't appear that the UDiv came from
the user's source.

ScalarEvolution has recently figured out how to compute a tripcount
expression for the inner loop in
SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a
udiv instruction dramatically slows down the enclosing loop.

llvm-svn: 101068

show more ...


# 07f6563e 12-Apr-2010 Dan Gohman <gohman@apple.com>

Move the EliminateIVUsers call back out to its original location. Now that
a ScalarEvolution bug with overflow handling is fixed, the normal analysis
code will automatically decline to operate on the

Move the EliminateIVUsers call back out to its original location. Now that
a ScalarEvolution bug with overflow handling is fixed, the normal analysis
code will automatically decline to operate on the icmp instructions which
are responsible for the loop exit.

llvm-svn: 101032

show more ...


# 15f90c29 12-Apr-2010 Dan Gohman <gohman@apple.com>

Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons,
instead of deleting just the user. This makes it more consistent with
other code in IndVarSimplify, and theoretically can eli

Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons,
instead of deleting just the user. This makes it more consistent with
other code in IndVarSimplify, and theoretically can eliminate more users
earlier.

llvm-svn: 101027

show more ...


# fa5ad797 12-Apr-2010 Dan Gohman <gohman@apple.com>

Re-apply r101000, with a fix: Don't eliminate an icmp which is part of
the loop exit test. This usually doesn't come up for a variety of
reasons, but it isn't impossible, so make IndVarSimplify handl

Re-apply r101000, with a fix: Don't eliminate an icmp which is part of
the loop exit test. This usually doesn't come up for a variety of
reasons, but it isn't impossible, so make IndVarSimplify handle it
conservatively.

llvm-svn: 101008

show more ...


# c0f1efaf 12-Apr-2010 Dan Gohman <gohman@apple.com>

Revert 101000, which is breaking self-host builds.

llvm-svn: 101002


# af4ab1b6 11-Apr-2010 Dan Gohman <gohman@apple.com>

Teach IndVarSimplify how to eliminate comparisons involving induction
variables. For example, with code like this:

for (i=0;i<n;++i)
if (i<n)
x[i] = 0;

IndVarSimplify will now recognize

Teach IndVarSimplify how to eliminate comparisons involving induction
variables. For example, with code like this:

for (i=0;i<n;++i)
if (i<n)
x[i] = 0;

IndVarSimplify will now recognize that i is always less than n inside
the loop, and eliminate the if.

llvm-svn: 101000

show more ...


# b50349a9 11-Apr-2010 Dan Gohman <gohman@apple.com>

Rename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasise
that it's only testing for the entry condition, not full loop-invariant
conditions.

llvm-svn: 100979


# d006ab90 07-Apr-2010 Dan Gohman <gohman@apple.com>

Generalize IVUsers to track arbitrary expressions rather than expressions
explicitly split into stride-and-offset pairs. Also, add the
ability to track multiple post-increment loops on the same expre

Generalize IVUsers to track arbitrary expressions rather than expressions
explicitly split into stride-and-offset pairs. Also, add the
ability to track multiple post-increment loops on the same expression.

This refines the concept of "normalizing" SCEV expressions used for
to post-increment uses, and introduces a dedicated utility routine for
normalizing and denormalizing expressions.

This fixes the expansion of expressions which are post-increment users
of more than one loop at a time. More broadly, this takes LSR another
step closer to being able to reason about more than one loop at a time.

llvm-svn: 100699

show more ...


# ecb53631 03-Apr-2010 Chris Lattner <sabre@nondot.org>

require that the branch being controlled by the IV
exits the loop. With this information we can guarantee
the iteration count of the loop is bounded by the
compare. I think this xforms is finall

require that the branch being controlled by the IV
exits the loop. With this information we can guarantee
the iteration count of the loop is bounded by the
compare. I think this xforms is finally safe now.

llvm-svn: 100285

show more ...


1...<<11121314151617181920>>...31