|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | delete some dead ones.
llvm-svn: 32694 | 
| | 
| 
| 
| 
| 
| | is 'unsigned'.
llvm-svn: 32279 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| | reachable, making it general purpose enough for use by InsertPreheaderForLoop.
Eliminate custom dominfo updating code in InsertPreheaderForLoop, using
UpdateDomInfoForRevectoredPreds instead.
llvm-svn: 30586 | 
| | 
| 
| 
| | llvm-svn: 29925 | 
| | 
| 
| 
| | llvm-svn: 29911 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | dropped.  This shrinks libllvmgcc.dylib another 67K
llvm-svn: 28975 | 
| | 
| 
| 
| 
| 
| 
| 
| | can provide work for the outer loop to canonicalize.
This fixes a case that breaks unswitching.
llvm-svn: 26189 | 
| | 
| 
| 
| 
| 
| 
| 
| | block in the appropriate loop nest.
Third time is the charm, right?
llvm-svn: 26187 | 
| | 
| 
| 
| | llvm-svn: 26128 | 
| | 
| 
| 
| | llvm-svn: 26126 | 
| | 
| 
| 
| | llvm-svn: 26121 | 
| | 
| 
| 
| 
| 
| | loops and their subloops.
llvm-svn: 26118 | 
| | 
| 
| 
| | llvm-svn: 26116 | 
| | 
| 
| 
| | llvm-svn: 25153 | 
|  | llvm-svn: 23998 |