History log of /llvm-project/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (Results 426 – 450 of 753)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e629d008 10-Aug-2011 Andrew Trick <atrick@apple.com>

Cleanup. Make ScalarEvolution an explicit argument of the
SimplifyIndVar utility since it is required.

llvm-svn: 137202


# 3ec331ea 10-Aug-2011 Andrew Trick <atrick@apple.com>

Added a SimplifyIndVar utility to simplify induction variable users
based on ScalarEvolution without changing the induction variable phis.

This utility is the main tool of IndVarSimplifyPass, but th

Added a SimplifyIndVar utility to simplify induction variable users
based on ScalarEvolution without changing the induction variable phis.

This utility is the main tool of IndVarSimplifyPass, but the pass also
restructures induction variables in strange ways that are sensitive to
pass ordering. This provides a way for other loop passes to simplify
new uses of induction variables created during transformation. The
utility may be used by any pass that preserves ScalarEvolution. Soon
LoopUnroll will use it.

The net effect in this checkin is to cleanup the IndVarSimplify pass
by factoring out the SimplifyIndVar algorithm into a standalone utility.

llvm-svn: 137197

show more ...


# 6d45a01b 06-Aug-2011 Andrew Trick <atrick@apple.com>

Made SCEV's UDiv expressions more canonical. When dividing a
recurrence, the initial values low bits can sometimes be ignored.

To take advantage of this, added FoldIVUser to IndVarSimplify to fold
a

Made SCEV's UDiv expressions more canonical. When dividing a
recurrence, the initial values low bits can sometimes be ignored.

To take advantage of this, added FoldIVUser to IndVarSimplify to fold
an IV operand into a udiv/lshr if the operator doesn't affect the
result.

-indvars -disable-iv-rewrite now transforms

i = phi i4
i1 = i0 + 1
idx = i1 >> (2 or more)
i4 = i + 4

into

i = phi i4
idx = i0 >> ...
i4 = i + 4

llvm-svn: 137013

show more ...


# cd3e8cb8 21-Jul-2011 Andrew Trick <atrick@apple.com>

Cleanup: make std::pair usage slightly less indecipherable without actually naming variables!

llvm-svn: 135684


# 5cf753c9 21-Jul-2011 Chris Lattner <sabre@nondot.org>

move tier out of an anonymous namespace, it doesn't make sense
to for it to be an an anon namespace and be in a header.

Eliminate some extraenous uses of tie.

llvm-svn: 135669


# 50bfbab0 20-Jul-2011 Jay Foad <jay.foad@gmail.com>

Fix a GCC warning.

llvm-svn: 135581


# 638b355a 20-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: Added getInsertPointForUses to find a valid place to truncate the IV.

llvm-svn: 135568


# 22104485 20-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: Add NarrowIVDefUse to cache def-use
info. Holding Use* pointers is bad form even though it happened to
work in this case.

llvm-svn: 135566


# c5dd3e97 20-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite fix: derived GEP IVs

llvm-svn: 135558


# c43b6764 18-Jul-2011 Andrew Trick <atrick@apple.com>

Compiler warning.

llvm-svn: 135426


# 7da2417c 18-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: LinearFunctionTestReplace for non-canonical IVs.

For -disable-iv-rewrite, perform LFTR without generating a new
"canonical" induction variable. Instead find the "best" existing
induction va

indvars: LinearFunctionTestReplace for non-canonical IVs.

For -disable-iv-rewrite, perform LFTR without generating a new
"canonical" induction variable. Instead find the "best" existing
induction variable for use in the loop exit test and compute the final
value of that IV for use in the new loop exit test. In short,
convert to a simple eq/ne exit test as long as it's cheap to do so.

llvm-svn: 135420

show more ...


# 494c549e 18-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: Added verification that LFTR and other indvars goodness does
not interfere with BackedgeTakenCount computation.

llvm-svn: 135412


# a27d8b18 18-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: Added isHighCostExpansion. Avoid generating extra ops in the
preheader for the sole purpose of LFTR, since LFTR itself is usually not
a clear optimization.

llvm-svn: 135409


# 229907cd 18-Jul-2011 Chris Lattner <sabre@nondot.org>

land David Blaikie's patch to de-constify Type, with a few tweaks.

llvm-svn: 135375


# c591f3af 16-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: fix a pass-sensitivity issue that would hit the SCEVExpander
assertion I added in r135333. Check for the existence of a preheader
before expanding a recurrence.

llvm-svn: 135335


# 9ea55dc2 16-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: remove ExprToIVMap because it won't be needed by LFTR.

llvm-svn: 135334


# cdc2297e 12-Jul-2011 Andrew Trick <atrick@apple.com>

indvars: Code reorganization in preparation for
LinearFunctionTestReplace rewrite. No functionality.

I've been wanting to group the indvar subphases into sections and
order them by their logical seq

indvars: Code reorganization in preparation for
LinearFunctionTestReplace rewrite. No functionality.

I've been wanting to group the indvar subphases into sections and
order them by their logical sequence. My next checkin adds functions
related to LFTR, and doing the reorg now should help reviewers. Since,
most of the code in IndVarSimplify.cpp has recently been replaced or
will be replaced soon, obscuring blame should not be an issue. This
seems like an ideal time to shuffle the code around.

I'm happy to take more suggestions for cleaning up the code. Or if
you've been wanting to cleanup anything in this file yourself, now is
a good time.

llvm-svn: 134941

show more ...


# 9f8c2853 06-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: ExprToMap lives in Pass data, so be more
careful about referencing values.

llvm-svn: 134537


# 3239055d 06-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: Added SimplifyCongruentIVs.

llvm-svn: 134530


# c3239d39 05-Jul-2011 Devang Patel <dpatel@apple.com>

Preserve debug loc.

llvm-svn: 134441


# 92905a17 05-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: avoid multiple IVs in weird cases.

Putting back the helper that I removed on 7/1 to do this right.

llvm-svn: 134423


# 6d123094 02-Jul-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: bug fix involving weird geps and related cleanup.

llvm-svn: 134306


# efe89ad4 30-Jun-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: handle cloning binary operators that cannot overflow.

llvm-svn: 134177


# cc686053 30-Jun-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: handle an edge case involving identity phis.

llvm-svn: 134124


# ecdd6e4c 29-Jun-2011 Andrew Trick <atrick@apple.com>

indvars -disable-iv-rewrite: insert new trunc instructions carefully.

llvm-svn: 134112


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