History log of /llvm-project/llvm/lib/Transforms/Utils/LoopSimplify.cpp (Results 201 – 225 of 283)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 02d5f77d 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca>

Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit

Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.

llvm-svn: 85042

show more ...


Revision tags: llvmorg-2.6.0
# ea0bb8f5 30-Sep-2009 Dan Gohman <gohman@apple.com>

Fix this code so that it doesn't try to iterate through a std::vector
while calling changeImmediateDominator, which removes elements from the
vector. This fixes PR5097.

llvm-svn: 83166


# 9a7320c7 28-Sep-2009 Dan Gohman <gohman@apple.com>

Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.

llvm-svn: 82990


# 3ddbc242 08-Sep-2009 Dan Gohman <gohman@apple.com>

Re-apply r80926, with fixes: keep the domtree informed of new blocks
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying

Re-apply r80926, with fixes: keep the domtree informed of new blocks
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.

Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.

llvm-svn: 81221

show more ...


# 90419954 06-Sep-2009 Evan Cheng <evan.cheng@apple.com>

Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.

llvm-svn: 81101


# 4c1bdcf5 03-Sep-2009 Dan Gohman <gohman@apple.com>

Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify
that these passes are properly preserved.

Fix several transformation passes that claimed to preserve LoopSimplify
form but

Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify
that these passes are properly preserved.

Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.

llvm-svn: 80926

show more ...


# 22571485 03-Sep-2009 Dan Gohman <gohman@apple.com>

Change PHINode::hasConstantValue to have a DominatorTree argument
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
avail

Change PHINode::hasConstantValue to have a DominatorTree argument
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.

llvm-svn: 80920

show more ...


# 55f1c09e 13-Aug-2009 Owen Anderson <resistor@mac.com>

Push LLVMContexts through the IntegerType APIs.

llvm-svn: 78948


# b292b8ce 30-Jul-2009 Owen Anderson <resistor@mac.com>

Move more code back to 2.5 APIs.

llvm-svn: 77635


# 47db941f 22-Jul-2009 Owen Anderson <resistor@mac.com>

Get rid of the Pass+Context magic.

llvm-svn: 76702


# c43e4793 15-Jul-2009 Dan Gohman <gohman@apple.com>

Make makeLoopInvariant report whether it made any changes or not,
and use this to simplify more code.

llvm-svn: 75722


# 4d6149f3 14-Jul-2009 Dan Gohman <gohman@apple.com>

Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant
function.

llvm-svn: 75584


# e70b6370 05-Jul-2009 Owen Anderson <resistor@mac.com>

More LLVMContext-ification.

llvm-svn: 74807


# 4dfc6800 30-Jun-2009 Dan Gohman <gohman@apple.com>

Minor code simplification.

llvm-svn: 74491


# ffdcba3d 27-Jun-2009 Dan Gohman <gohman@apple.com>

Remove the block from the LoopInfo, rather than just the Loop.
LoopInfo will handle removing it from the Loop, as well as updating
its own tables.

llvm-svn: 74398


# c8ca4965 27-Jun-2009 Dan Gohman <gohman@apple.com>

Teach LoopSimplify how to merge multiple loop exits into a single exit,
when one of them can be converted to a trivial icmp and conditional
branch.

This addresses what is essentially a phase orderin

Teach LoopSimplify how to merge multiple loop exits into a single exit,
when one of them can be converted to a trivial icmp and conditional
branch.

This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.

llvm-svn: 74396

show more ...


Revision tags: llvmorg-2.5.0
# 5a913d61 28-Jan-2009 Duncan Sands <baldrick@free.fr>

Rename getAnalysisToUpdate to getAnalysisIfAvailable.

llvm-svn: 63198


Revision tags: llvmorg-2.4.0
# a79db30d 04-Sep-2008 Dan Gohman <gohman@apple.com>

Tidy up several unbeseeming casts from pointer to intptr_t.

llvm-svn: 55779


# 90071075 22-Jun-2008 Dan Gohman <gohman@apple.com>

Use Loop::block_iterator.

llvm-svn: 52616


Revision tags: llvmorg-2.3.0
# 8549e4ca 06-Jun-2008 Devang Patel <dpatel@apple.com>

LoopSimplify preserves AA.

llvm-svn: 52053


# 0479aa5c 13-May-2008 Dan Gohman <gohman@apple.com>

Change class' public PassInfo variables to by initialized with the
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.

Change class' public PassInfo variables to by initialized with the
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.

Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.

llvm-svn: 51022

show more ...


# d78c400b 13-May-2008 Dan Gohman <gohman@apple.com>

Clean up the use of static and anonymous namespaces. This turned up
several things that were neither in an anonymous namespace nor static
but not intended to be global.

llvm-svn: 51017


# 4d43d3c7 25-Apr-2008 Nick Lewycky <nicholas@mxc.ca>

Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.

llvm-svn: 50265


# a5b11705 21-Apr-2008 Chris Lattner <sabre@nondot.org>

Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input.

Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.

llvm-svn: 50020

show more ...


# d418b06a 21-Apr-2008 Chris Lattner <sabre@nondot.org>

Move domtree/frontier updating earlier, allowing us to use it to update phi
nodes, removing a hack.

llvm-svn: 50019


12345678910>>...12