#
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
|