| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 92772
|
|
|
|
|
|
|
|
| |
contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654
|
|
|
|
|
|
| |
avoid spurious failures. This fixes PR5758.
llvm-svn: 91147
|
|
|
|
| |
llvm-svn: 89426
|
|
|
|
| |
llvm-svn: 86565
|
|
|
|
|
|
| |
a separate helper function.
llvm-svn: 86159
|
|
|
|
|
|
|
|
| |
container of the blocks and do efficient lookups. This makes
isLoopSimplifyForm much faster on large loops, fixing a significant
compile-time issue in builds with assertions enabled.
llvm-svn: 84673
|
|
|
|
|
|
|
|
|
|
|
|
| |
the PassManager code into a regular verifyAnalysis method.
Also, reorganize loop verification. Make the LoopPass infrastructure
call verifyLoop as needed instead of having LoopInfo::verifyAnalysis
check every loop in the function after each looop pass. Add a new
command-line argument, -verify-loop-info, to enable the expensive
full checking.
llvm-svn: 82952
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
tests significantly.
llvm-svn: 81101
|
|
|
|
| |
llvm-svn: 80942
|
|
|
|
|
|
|
|
|
| |
that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.
llvm-svn: 80926
|
|
|
|
|
|
|
| |
LoopSimplify form, which is currently only available on Loops (and
not MachineLoops). Also, move the code out of the header file.
llvm-svn: 80923
|
|
|
|
| |
llvm-svn: 79838
|
|
|
|
|
|
| |
update all code that this affects.
llvm-svn: 79830
|
|
|
|
|
|
| |
This also updates dominator related stuff.
llvm-svn: 79825
|
|
|
|
|
|
|
|
|
|
| |
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
llvm-svn: 76150
|
|
|
|
|
|
|
| |
isLCSSAForm(), to test whether a loop is in the form guaranteed
by the LoopSimplify pass.
llvm-svn: 76077
|
|
|
|
|
|
| |
and use this to simplify more code.
llvm-svn: 75722
|
|
|
|
|
|
|
|
|
|
|
| |
works similar to isLoopInvariant, except that it will do trivial
hoisting to try to make the value loop invariant if it isn't already.
This makes it easier for transformation passes to clear trivial
instructions out of the way (the regular LICM pass doesn't run
until relatively late). This is code factored out of LoopSimplify
and other places.
llvm-svn: 75578
|
|
|
|
|
|
|
|
| |
and related functions out of LoopBase and into Loop, since they
are specific to BasicBlock-based loops. This also allows the code
to be moved out-of-line.
llvm-svn: 75523
|
|
|
|
| |
llvm-svn: 74394
|
|
|
|
| |
llvm-svn: 72948
|
|
|
|
|
|
|
| |
"Construction" makes it sound like a pass that might
modify the CFG to construct natural loops.
llvm-svn: 70580
|
|
|
|
| |
llvm-svn: 61201
|
|
|
|
| |
llvm-svn: 50695
|
|
|
|
|
|
| |
This patch fixes Benchmarks/Trimaran/enc-pc1/enc-pc1 failure reported by Grawp-PIC i386 nightly tester
llvm-svn: 48623
|
|
|
|
| |
llvm-svn: 48579
|
|
|
|
| |
llvm-svn: 48554
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
This involves a small interface change.
llvm-svn: 44348
|
|
|
|
| |
llvm-svn: 44158
|
|
|
|
| |
llvm-svn: 44097
|
|
|
|
| |
llvm-svn: 41230
|
|
|
|
| |
llvm-svn: 41228
|
|
|
|
| |
llvm-svn: 41207
|
|
|
|
| |
llvm-svn: 40062
|
|
|
|
| |
llvm-svn: 37507
|
|
|
|
| |
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: 34900
|
|
|
|
|
|
|
|
| |
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
|
|
| |
llvm streams
llvm-svn: 31983
|
|
|
|
| |
llvm-svn: 31249
|
|
|
|
|
|
|
|
| |
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966
|
|
|
|
| |
llvm-svn: 29921
|
|
|
|
|
|
|
|
| |
pounding on Loop::contains (which is O(n) in the size of the loop), use a
sorted vector, which is O(log(N)) for each query. This speeds up Duraid's
horrible testcase from ~72s to ~31s in a debug build.
llvm-svn: 29645
|
|
|
|
|
|
| |
This reduces LCSSA pass time from 1.5s to 0.96s when run on eon in release+asserts mode.
llvm-svn: 29464
|