| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 82951
|
| |
|
|
|
|
|
|
| |
code that stops the timer doesn't have to search to find the timer
object before it stops the timer. This avoids a lock acquisition
and a few other things done with the timer running.
llvm-svn: 82949
|
| |
|
|
| |
llvm-svn: 82947
|
| |
|
|
|
|
| |
a separate function.
llvm-svn: 82946
|
| |
|
|
|
|
|
|
| |
LoopPasses for that loop. This avoids trouble with the PassManager
trying to call verifyAnalysis on them, and frees up some memory
sooner rather than later.
llvm-svn: 82945
|
| |
|
|
| |
llvm-svn: 82908
|
| |
|
|
|
|
|
|
| |
aren't in canonical loop-simplify form, since it doesn't itself depend
on LoopSimplify. This means handling loops without preheaders and loops
with multiple backedges.
llvm-svn: 82905
|
| |
|
|
|
|
|
|
|
| |
test whether it properly dominates the loop header. This is equivalent
when the loop has a preheader, and has the advantage of working when
the loop doesn't have a preheader. Since IVUsers doesn't Require
LoopSimplify, the loop isn't guaranteed to have a preheader.
llvm-svn: 82899
|
| |
|
|
| |
llvm-svn: 82898
|
| |
|
|
| |
llvm-svn: 82897
|
| |
|
|
|
|
| |
to inttoptr/ptrtoint unnecessarily.
llvm-svn: 82864
|
| |
|
|
|
|
| |
appear to be misspellings, removed in favor of fabs*.
llvm-svn: 82796
|
| |
|
|
| |
llvm-svn: 82561
|
| |
|
|
|
|
| |
with debug info, since it was extraordinarily easy to have dangling pointers thanks to MDNode uniquing.
llvm-svn: 82507
|
| |
|
|
|
|
| |
scary, as it indicates a lurking bug. yay.
llvm-svn: 82411
|
| |
|
|
|
|
|
| |
early for the stated reasons: this allows it to find more
equivalences and depend less on code layout.
llvm-svn: 82404
|
| |
|
|
| |
llvm-svn: 82355
|
| |
|
|
| |
llvm-svn: 82332
|
| |
|
|
| |
llvm-svn: 82319
|
| |
|
|
|
|
|
| |
to. This can be combined with LCSSA or SSI form to store more information on a
PHINode than can be computed by looking at its incoming values.
llvm-svn: 82317
|
| |
|
|
|
|
|
| |
It prints the content of all bbs, instead of printing empty bbs to make the
CFG more readable. Fix this. Patch by Tobias Grosser.
llvm-svn: 82315
|
| |
|
|
|
|
|
|
| |
as to MallocInst.
Reviewed by Eli Friedman.
llvm-svn: 82281
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
malloc, not the resulting type).
In getMallocArraySize(), fix bug in the case that array size is the product of 2 constants.
Extend isArrayMalloc() and getMallocArraySize() to handle case where malloc is used as char array.
Ensure that ArraySize in LowerAllocations::runOnBasicBlock() is correct type.
Extend Instruction::isSafeToSpeculativelyExecute() to handle malloc calls.
Add verification for malloc calls.
Reviewed by Dan Gohman.
llvm-svn: 82257
|
| |
|
|
| |
llvm-svn: 82206
|
| |
|
|
|
|
|
|
| |
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.
llvm-svn: 82151
|
| |
|
|
| |
llvm-svn: 82064
|
| |
|
|
|
|
|
| |
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086737.html and
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086746.html)
llvm-svn: 82039
|
| |
|
|
| |
llvm-svn: 81961
|
| |
|
|
|
|
|
| |
not folded in the constant folder because the constant folder doesn't
simplify ConstantExpr operands.
llvm-svn: 81864
|
| |
|
|
|
|
|
|
| |
argpromote to avoid invalidating an iterator. This fixes PR4977.
All clang tests now pass with expensive checking (on my system
at least).
llvm-svn: 81843
|
| |
|
|
|
|
| |
are in the SCC for each execution of a CGSCC pass.
llvm-svn: 81838
|
| |
|
|
| |
llvm-svn: 81517
|
| |
|
|
| |
llvm-svn: 81516
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
how to fold notionally-out-of-bounds array getelementptr indices instead
of just doing these in lib/Analysis/ConstantFolding.cpp, because it can
be done in a fairly general way without TargetData, and because not all
constants are visited by lib/Analysis/ConstantFolding.cpp. This enables
more constant folding.
Also, set the "inbounds" flag when the getelementptr indices are
one-past-the-end.
llvm-svn: 81483
|
| |
|
|
| |
llvm-svn: 81473
|
| |
|
|
| |
llvm-svn: 81463
|
| |
|
|
| |
llvm-svn: 81459
|
| |
|
|
| |
llvm-svn: 81450
|
| |
|
|
| |
llvm-svn: 81443
|
| |
|
|
| |
llvm-svn: 81438
|
| |
|
|
| |
llvm-svn: 81426
|
| |
|
|
| |
llvm-svn: 81364
|
| |
|
|
| |
llvm-svn: 81362
|
| |
|
|
| |
llvm-svn: 81359
|
| |
|
|
| |
llvm-svn: 81358
|
| |
|
|
| |
llvm-svn: 81347
|
| |
|
|
|
|
|
|
|
|
| |
Fixed non working -profile-verifier-noassert option.
Fixed missing newline in debugEntry().
Cleaned up assert messages. (assert(0 && Message) is still shown, but the message is printed before.)
When verifiying loaded profiles the ProfileVerifier got confused when block was a setjmp target, this is checked now.
When verifiying loaded profiles the ProfileVerifier got confused when block eventually reaching an exit(), this is checked now.
llvm-svn: 81338
|
| |
|
|
| |
llvm-svn: 81335
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|