| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
When an incoming value for a PHI is updated, we must also updated all other
incoming values for the same BB to match, otherwise we create invalid PHIs.
llvm-svn: 84638
|
| |
|
|
|
|
|
|
| |
where a loop's header is being split and it has predecessors which are not
contained by the most-nested loop which contains the loop.
This fixes PR5235.
llvm-svn: 84505
|
| |
|
|
|
|
| |
to name basic blocks "bb" instead of "BB", for consistency.
llvm-svn: 84502
|
| |
|
|
|
|
| |
updating the callgraph when introducing a call.
llvm-svn: 84310
|
| |
|
|
| |
llvm-svn: 84299
|
| |
|
|
| |
llvm-svn: 84256
|
| |
|
|
| |
llvm-svn: 84001
|
| |
|
|
| |
llvm-svn: 83999
|
| |
|
|
|
|
| |
for purposes other than inlining.
llvm-svn: 83997
|
| |
|
|
|
|
|
| |
this will increase the likelihood of common code getting sunk towards
the unwind.
llvm-svn: 83996
|
| |
|
|
|
|
| |
the IR, and to implement the FIXME'd optimization.
llvm-svn: 83748
|
| |
|
|
|
|
|
| |
inserted only once, just use vector. Don't compute ExitBlocks unless we
need it, change std::sort to array_pod_sort.
llvm-svn: 83747
|
| |
|
|
| |
llvm-svn: 83745
|
| |
|
|
|
|
| |
PHI nodes inserted.
llvm-svn: 83744
|
| |
|
|
|
|
|
| |
not just at the end. Add a big comment explaining when this could
be useful (which never happens for jump threading).
llvm-svn: 83741
|
| |
|
|
|
|
| |
what it does.
llvm-svn: 83740
|
| |
|
|
| |
llvm-svn: 83707
|
| |
|
|
|
|
| |
works on unstructured CFGs. This implements PR217, our oldest open PR.
llvm-svn: 83705
|
| |
|
|
| |
llvm-svn: 83701
|
| |
|
|
|
|
|
| |
constants used in inlining heuristics (especially
those used in more than one file). No functional change.
llvm-svn: 83675
|
| |
|
|
|
|
| |
not intrinsics.
llvm-svn: 83441
|
| |
|
|
|
|
|
|
|
| |
for inlining.
When MallocInst goes away this code will be subsumed as part of
calls and work just fine...
llvm-svn: 83434
|
| |
|
|
|
|
|
| |
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379
|
| |
|
|
|
|
| |
ConstantFoldLoadThroughGEPConstantExpr.
llvm-svn: 83311
|
| |
|
|
|
|
| |
This makes the code much more C++/LLVM-ish.
llvm-svn: 83286
|
| |
|
|
| |
llvm-svn: 83283
|
| |
|
|
|
|
|
|
| |
its runOnFunction.
Similarly, it can be marked setPreservesAll, since it does no work in its runOnFunction.
llvm-svn: 83282
|
| |
|
|
|
|
|
| |
while calling changeImmediateDominator, which removes elements from the
vector. This fixes PR5097.
llvm-svn: 83166
|
| |
|
|
| |
llvm-svn: 82991
|
| |
|
|
| |
llvm-svn: 82990
|
| |
|
|
| |
llvm-svn: 82931
|
| |
|
|
|
|
| |
update all the callers.
llvm-svn: 82889
|
| |
|
|
|
|
| |
computation, and some cosmetics.
llvm-svn: 82660
|
| |
|
|
| |
llvm-svn: 82488
|
| |
|
|
|
|
|
|
| |
calls as to MallocInst.
Reviewed by Dan Gohman.
llvm-svn: 82300
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 82034
|
| |
|
|
|
|
| |
used by a terminator in another.
llvm-svn: 81437
|
| |
|
|
| |
llvm-svn: 81426
|
| |
|
|
|
|
|
|
|
|
| |
loop exit edge -- new PHIs may be needed not only for the additional
splits that are made to preserve LoopSimplify form, but also for the
original split. Factor out the code that inserts new PHIs so that it
can be used for both. Remove LoopRotation.cpp's code for manually
updating LCSSA form, as it is now redundant. This fixes PR4934.
llvm-svn: 81363
|
| |
|
|
| |
llvm-svn: 81360
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 81138
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.
llvm-svn: 80920
|
| |
|
|
|
|
| |
buildbot's stage 2 configure
llvm-svn: 80871
|
| |
|
|
|
|
| |
this time. I'll back out if needed...
llvm-svn: 80858
|
| |
|
|
|
|
| |
callgraph. This is now dead because RAUW does the job.
llvm-svn: 80703
|
| |
|
|
|
|
|
|
|
|
|
|
| |
for sanity. This didn't turn up any bugs.
Change CallGraphNode to maintain its "callsite" information in the
call edges list as a WeakVH instead of as an instruction*. This fixes
a broad class of dangling pointer bugs, and makes CallGraph have a number
of useful invariants again. This fixes the class of problem indicated
by PR4029 and PR3601.
llvm-svn: 80663
|