History log of /llvm-project/llvm/lib/Transforms/Utils/LoopSimplify.cpp (Results 251 – 275 of 283)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 09f162ca 01-May-2007 Devang Patel <dpatel@apple.com>

Do not use typeinfo to identify pass in pass manager.

llvm-svn: 36632


# 83a3adcc 20-Apr-2007 Devang Patel <dpatel@apple.com>

Avoid recursion.

llvm-svn: 36272


# f35a1dbc 15-Apr-2007 Owen Anderson <resistor@mac.com>

Remove ImmediateDominator analysis. The same information can be obtained from DomTree. A lot of code for
constructing ImmediateDominator is now folded into DomTree construction.

This is part of th

Remove ImmediateDominator analysis. The same information can be obtained from DomTree. A lot of code for
constructing ImmediateDominator is now folded into DomTree construction.

This is part of the ongoing work for PR217.

llvm-svn: 36063

show more ...


# 3c786793 09-Apr-2007 Owen Anderson <resistor@mac.com>

Re-constify things that don't break the build. Last patch in this
series, I promise.

llvm-svn: 35848


# f1ca1376 09-Apr-2007 Owen Anderson <resistor@mac.com>

Unconst-ify stuff that broke the build.

llvm-svn: 35843


# 59177161 09-Apr-2007 Owen Anderson <resistor@mac.com>

Const-ify some parameters, and some cosmetic cleanups. No functionality
change.

llvm-svn: 35842


# e0ef5ac6 09-Apr-2007 Owen Anderson <resistor@mac.com>

Tabs -> Spaces

llvm-svn: 35841


# 83efbc84 09-Apr-2007 Owen Anderson <resistor@mac.com>

Improve some _slow_ behavior introduced in my patches the last few days.

llvm-svn: 35839


# ae39ca03 09-Apr-2007 Owen Anderson <resistor@mac.com>

Cleanup some from my DomSet-removal changes. Add a new
isReachableFromEntry
test to ETForest to factor a common test out of code.

llvm-svn: 35786


# e6c64466 08-Apr-2007 Nick Lewycky <nicholas@mxc.ca>

Remove DominatorSet usage from LoopSimplify. Patch from Owen Anderson.

llvm-svn: 35757


# f7ebea1b 07-Apr-2007 Owen Anderson <resistor@mac.com>

Add DomSet back, and revert the changes to LoopSimplify. Apparently the
ETForest updating mechanisms don't work as I thought they did. These changes
will be reapplied once the issue is worked out.

Add DomSet back, and revert the changes to LoopSimplify. Apparently the
ETForest updating mechanisms don't work as I thought they did. These changes
will be reapplied once the issue is worked out.

llvm-svn: 35741

show more ...


# 706e9704 07-Apr-2007 Owen Anderson <resistor@mac.com>

Completely purge DomSet from LoopSimplify. This is part of the
continuing work on PR1171.

llvm-svn: 35730


# 91041959 07-Apr-2007 Owen Anderson <resistor@mac.com>

Expunge a bunch of uses of DomSet from LoopSimplify. Many more remain.

This is the beginning of work for PR1171.

llvm-svn: 35720


# 1758cb50 20-Mar-2007 Devang Patel <dpatel@apple.com>

LoopSimplify::FindPHIToPartitionLoops()
Use ETForest instead of DominatorSet.

llvm-svn: 35221


# 45f966d8 19-Dec-2006 Chris Lattner <sabre@nondot.org>

switch more statistics over to STATISTIC, eliminating static ctors. Also,
delete some dead ones.

llvm-svn: 32694


# 700b8731 06-Dec-2006 Chris Lattner <sabre@nondot.org>

Detemplatize the Statistic class. The only type it is instantiated with
is 'unsigned'.

llvm-svn: 32279


Revision tags: llvmorg-1.9.0
# de46e484 02-Nov-2006 Reid Spencer <rspencer@reidspencer.com>

For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to dele

For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.

llvm-svn: 31380

show more ...


# 6bd6da40 23-Sep-2006 Chris Lattner <sabre@nondot.org>

Be far more careful when splitting a loop header, either to form a preheader
or when splitting loops with a common header into multiple loops. In particular
the old code would always insert the preh

Be far more careful when splitting a loop header, either to form a preheader
or when splitting loops with a common header into multiple loops. In particular
the old code would always insert the preheader before the old loop header. This
is disasterous in cases where the loop hasn't been rotated. For example, it can
produce code like:

.. outside the loop...
jmp LBB1_2 #bb13.outer
LBB1_1: #bb1
movsd 8(%esp,%esi,8), %xmm1
mulsd (%edi), %xmm1
addsd %xmm0, %xmm1
addl $24, %edi
incl %esi
jmp LBB1_3 #bb13
LBB1_2: #bb13.outer
leal (%edx,%eax,8), %edi
pxor %xmm1, %xmm1
xorl %esi, %esi
LBB1_3: #bb13
movapd %xmm1, %xmm0
cmpl $4, %esi
jl LBB1_1 #bb1

Note that the loop body is actually LBB1_1 + LBB1_3, which means that the
loop now contains an uncond branch WITHIN it to jump around the inserted
loop header (LBB1_2). Doh.

This patch changes the preheader insertion code to insert it in the right
spot, producing this code:

... outside the loop, fall into the header ...
LBB1_1: #bb13.outer
leal (%edx,%eax,8), %esi
pxor %xmm0, %xmm0
xorl %edi, %edi
jmp LBB1_3 #bb13
LBB1_2: #bb1
movsd 8(%esp,%edi,8), %xmm0
mulsd (%esi), %xmm0
addsd %xmm1, %xmm0
addl $24, %esi
incl %edi
LBB1_3: #bb13
movapd %xmm0, %xmm1
cmpl $4, %edi
jl LBB1_2 #bb1

Totally crazy, no branch in the loop! :)

llvm-svn: 30587

show more ...


# 608cd05e 23-Sep-2006 Chris Lattner <sabre@nondot.org>

Teach UpdateDomInfoForRevectoredPreds to handle revectored preds that are not
reachable, making it general purpose enough for use by InsertPreheaderForLoop.
Eliminate custom dominfo updating code in

Teach UpdateDomInfoForRevectoredPreds to handle revectored preds that are not
reachable, making it general purpose enough for use by InsertPreheaderForLoop.
Eliminate custom dominfo updating code in InsertPreheaderForLoop, using
UpdateDomInfoForRevectoredPreds instead.

llvm-svn: 30586

show more ...


# c2d3d311 27-Aug-2006 Chris Lattner <sabre@nondot.org>

eliminate RegisterOpt. It does the same thing as RegisterPass.

llvm-svn: 29925


# 3d27be13 27-Aug-2006 Chris Lattner <sabre@nondot.org>

s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|

llvm-svn: 29911


# f18b396c 12-Aug-2006 Chris Lattner <sabre@nondot.org>

Don't attempt to split subloops out of a loop with a huge number of backedges.
Not only will this take huge amounts of compile time, the resultant loop nests
won't be useful for optimization. This r

Don't attempt to split subloops out of a loop with a huge number of backedges.
Not only will this take huge amounts of compile time, the resultant loop nests
won't be useful for optimization. This reduces loopsimplify time on
Transforms/LoopSimplify/2006-08-11-LoopSimplifyLongTime.ll from ~32s to ~0.4s
with a debug build of llvm on a 2.7Ghz G5.

llvm-svn: 29647

show more ...


# 85d9944f 12-Aug-2006 Chris Lattner <sabre@nondot.org>

Reimplement the loopsimplify code which deletes edges from unreachable
blocks that target loop blocks.

Before, the code was run once per loop, and depended on the number of
predecessors each block i

Reimplement the loopsimplify code which deletes edges from unreachable
blocks that target loop blocks.

Before, the code was run once per loop, and depended on the number of
predecessors each block in the loop had. Unfortunately, scanning preds can
be really slow when huge numbers of phis exist or when phis with huge numbers
of inputs exist.

Now, the code is run once per function and scans successors instead of preds,
which is far faster. In addition, the new code is simpler and is goto free,
woo.

This change speeds up a nasty testcase Duraid provided me from taking hours to
taking ~72s with a debug build. The functionality this implements is already
tested in the testsuite as Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll.

llvm-svn: 29644

show more ...


# 996795b0 28-Jun-2006 Chris Lattner <sabre@nondot.org>

Use hidden visibility to make symbols in an anonymous namespace get
dropped. This shrinks libllvmgcc.dylib another 67K

llvm-svn: 28975


# 9c5693fb 14-Feb-2006 Chris Lattner <sabre@nondot.org>

Canonicalize inner loops before outer loops. Inner loop canonicalization
can provide work for the outer loop to canonicalize.

This fixes a case that breaks unswitching.

llvm-svn: 26189


1...<<1112