| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
symtab manipulation, so its faster (in addition to being
more elegant)
llvm-svn: 112450
|
|
|
|
| |
llvm-svn: 112449
|
|
|
|
|
|
|
| |
of AST to remove the hoisted instruction from the AST, since it
is no longer in the loop.
llvm-svn: 112448
|
|
|
|
|
|
|
|
|
|
| |
LICM correctly. When sinking an instruction, it should not add
entries for the sunk instruction to the AST, it should remove
the entry for the sunk instruction. The blocks being sunk to
are not in the loop, so their instructions shouldn't be in the
AST (yet)!
llvm-svn: 112447
|
|
|
|
|
|
|
|
|
|
| |
keeping them around until the pass is destroyed, keep them
around a) just when useful (not for outer loops) and b) destroy
them right after we use them. This should reduce memory use
and fixes potential bugs where a loop is deleted and another
loop gets allocated to the same address.
llvm-svn: 112446
|
|
|
|
|
|
| |
preserves domfrontier. It does preserve AA though.
llvm-svn: 112419
|
|
|
|
|
|
|
| |
require DomFrontier. Dropping this doesn't actually save any runs
of the pass though.
llvm-svn: 112418
|
|
|
|
|
|
|
| |
Among other things, this uses SSAUpdater instead of
PromoteMemToReg.
llvm-svn: 112417
|
|
|
|
| |
llvm-svn: 112412
|
|
|
|
|
|
| |
This leads to much simpler code.
llvm-svn: 112410
|
|
|
|
|
|
|
| |
getUniqueExitBlocks instead of getExitBlocks and a manual
set to eliminate dupes.
llvm-svn: 112405
|
|
|
|
| |
llvm-svn: 112404
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
| |
llvm-svn: 109886
|
|
|
|
| |
llvm-svn: 109045
|
|
|
|
|
|
| |
a redundant loopsimplify run from the default -O2 sequence.
llvm-svn: 108539
|
|
|
|
| |
llvm-svn: 101250
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
| |
llvm-svn: 92619
|
|
|
|
|
|
|
|
|
|
| |
Intrinsic::dbg_stoppoint
Intrinsic::dbg_region_start
Intrinsic::dbg_region_end
Intrinsic::dbg_func_start
AutoUpgrade simply ignores these intrinsics now.
llvm-svn: 92557
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
of the loop. We could get to this condition via indirect
branches.
llvm-svn: 91009
|
|
|
|
| |
llvm-svn: 89645
|
|
|
|
|
|
|
|
| |
they are lowered to instruction sequences more complex than a simple
load, such that CodeGen cannot rematerialize them, a reload from a
spill slot is likely to be cheaper than the complex sequence.
llvm-svn: 89374
|
|
|
|
|
|
| |
LoopSimplify form may not be available.
llvm-svn: 86175
|
|
|
|
| |
llvm-svn: 84118
|
|
|
|
| |
llvm-svn: 84049
|
|
|
|
|
|
| |
ValueHandles a chance to get properly updated.
llvm-svn: 84033
|
|
|
|
| |
llvm-svn: 83908
|
|
|
|
|
|
| |
here.
llvm-svn: 83789
|
|
|
|
|
|
|
| |
For now the metadata of sinked/hoisted instructions is still wrong, but that'll
be fixed when instructions will have debug metadata directly attached.
llvm-svn: 83786
|
|
|
|
|
|
| |
that is deleted in some situations. This fixes a use-after-free.
llvm-svn: 82903
|
|
|
|
|
|
| |
update all the callers.
llvm-svn: 82889
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.
llvm-svn: 80926
|
|
|
|
| |
llvm-svn: 80766
|
|
|
|
|
|
| |
This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
| |
llvm-svn: 77635
|
|
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
|
|
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
AllocaInst and MallocInst.
llvm-svn: 75863
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
|
|
|
| |
llvm-svn: 74807
|