Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Loop

89 STATISTIC(CallInLoop, "Number of loops w/o safepoints due to calls in loop");
99 /// How narrow does the trip count of a loop have to be to have to be considered
101 static cl::opt<int> CountedLoopTripWidth("spp-counted-loop-trip-width",
104 // If true, split the backedge of a loop when placing the safepoint, otherwise
138 bool runOnLoop(Loop *);
139 void runOnLoopAndSubLoops(Loop *L) {
211 /// Returns true if this loop is known to contain a call safepoint which
212 /// must unconditionally execute on any iteration of the loop which returns
213 /// to the loop header via an edge from Pred. Returns a conservative correct
215 static bool containsUnconditionalCallSafepoint(Loop *L, BasicBlock *Header,
222 // loop latch (Pred) block. Somewhat surprisingly, walking the entire chain
225 // density of loop exit conditions caused by range and null checks.
228 assert(DT.dominates(Header, Pred) && "loop latch not dominated by header?");
252 /// Returns true if this loop is known to terminate in a finite number of
253 /// iterations. Note that this function may return false for a loop which
256 static bool mustBeFiniteCountedLoop(Loop *L, ScalarEvolution *SE,
258 // A conservative bound on the loop as a whole.
266 // being outside the loop, we can ask questions about the execution frequency
321 bool PlaceBackedgeSafepointsImpl::runOnLoop(Loop *L) {
322 // Loop through all loop latches (branches controlling backedges). We need
333 // Make a policy decision about whether this loop needs a safepoint or
339 errs() << "skipping safepoint placement in finite loop\n";
355 // TODO: We can create an inner loop which runs a finite number of
356 // iterations with an outer loop which contains a safepoint. This would
358 // optimize the inner loop.
572 // need the pass manager to handle scheduling all the loop passes
596 // a single loop is visited more than once. The fact this happens seems
603 // The poll location must be the terminator of a loop latch block.
609 // Split the backedge of the loop and insert the poll within that new
610 // basic block. This creates a loop with two latches per original
617 // and b) edges to distinct loop headers. We need to insert pools on
626 assert(!Headers.empty() && "poll location is not a loop latch?");
628 // The split loop structure here is so that we only need to recalculate
630 // date and use a more natural merged loop.
666 // above loop. TODO: Teach the inliner how to update the dom tree?
691 // survive to the last iteration of this loop.