| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
nodes, removing a hack.
llvm-svn: 50019
|
|
|
|
|
|
| |
instead of doing it after every call.
llvm-svn: 50018
|
|
|
|
| |
llvm-svn: 50015
|
|
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
|
|
|
|
|
| |
and also update the cloning interface's major user, the loop optimizations.
llvm-svn: 48088
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
This involves a small interface change.
llvm-svn: 44348
|
|
|
|
|
|
| |
can have uses too. Wouldn't it be nice if invoke didn't exist? :)
llvm-svn: 43426
|
|
|
|
|
|
|
|
|
|
| |
DominatorInternals.h
in CodeExtractor and LoopSimplify unnecessary.
Hartmut, could you confirm that this fixes the issues you were seeing?
llvm-svn: 43115
|
|
|
|
|
|
| |
VC++. Please review.
llvm-svn: 43081
|
|
|
|
| |
llvm-svn: 41207
|
|
|
|
| |
llvm-svn: 40859
|
|
|
|
| |
llvm-svn: 40062
|
|
|
|
|
|
| |
by _GLIBCXX_DEBUG.
llvm-svn: 37796
|
|
|
|
|
|
| |
from LoopSimplify.cpp to Dominator.cpp
llvm-svn: 37689
|
|
|
|
| |
llvm-svn: 37545
|
|
|
|
| |
llvm-svn: 37542
|
|
|
|
| |
llvm-svn: 37541
|
|
|
|
| |
llvm-svn: 37540
|
|
|
|
|
|
| |
Now LoopSimplify does not require nor preserve ETForest.
llvm-svn: 37512
|
|
|
|
| |
llvm-svn: 37415
|
|
|
|
| |
llvm-svn: 37407
|
|
|
|
| |
llvm-svn: 37403
|
|
|
|
| |
llvm-svn: 36873
|
|
|
|
| |
llvm-svn: 36662
|
|
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
|
|
|
| |
llvm-svn: 36632
|
|
|
|
| |
llvm-svn: 36272
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
series, I promise.
llvm-svn: 35848
|
|
|
|
| |
llvm-svn: 35843
|
|
|
|
|
|
| |
change.
llvm-svn: 35842
|
|
|
|
| |
llvm-svn: 35841
|
|
|
|
| |
llvm-svn: 35839
|
|
|
|
|
|
|
| |
isReachableFromEntry
test to ETForest to factor a common test out of code.
llvm-svn: 35786
|
|
|
|
| |
llvm-svn: 35757
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
continuing work on PR1171.
llvm-svn: 35730
|
|
|
|
|
|
| |
This is the beginning of work for PR1171.
llvm-svn: 35720
|
|
|
|
|
|
| |
Use ETForest instead of DominatorSet.
llvm-svn: 35221
|
|
|
|
|
|
| |
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
|