[PlaceSafepoints] Followup to commit L237172

Responding to review feedback from http://reviews.llvm.org/D9585

1) Remove a variable shadow by converting the outer loop to a range for loop.  We never really used the 'i' variable which was being shadowed.
2) Reduce DominatorTree recalculations by passing the DT to SplitEdge.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237212 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Philip Reames 2015-05-12 23:39:23 +00:00
parent 82550fed5c
commit 36cb3ce66a

View File

@ -606,13 +606,11 @@ bool PlaceSafepoints::runOnFunction(Function &F) {
PollLocations.end());
// Insert a poll at each point the analysis pass identified
for (size_t i = 0; i < PollLocations.size(); i++) {
// The poll location must be the terminator of a loop latch block.
for (TerminatorInst *Term : PollLocations) {
// We are inserting a poll, the function is modified
modified = true;
// The poll location must be the terminator of a loop latch block.
TerminatorInst *Term = PollLocations[i];
std::vector<CallSite> ParsePoints;
if (SplitBackedge) {
// Split the backedge of the loop and insert the poll within that new
@ -639,11 +637,8 @@ bool PlaceSafepoints::runOnFunction(Function &F) {
// date and use a more natural merged loop.
SetVector<BasicBlock *> SplitBackedges;
for (BasicBlock *Header : Headers) {
BasicBlock *NewBB = SplitEdge(Term->getParent(), Header, nullptr);
SplitBackedges.insert(NewBB);
}
DT.recalculate(F);
for (BasicBlock *NewBB : SplitBackedges) {
BasicBlock *NewBB = SplitEdge(Term->getParent(), Header, &DT);
std::vector<CallSite> RuntimeCalls;
InsertSafepointPoll(DT, NewBB->getTerminator(), RuntimeCalls);
NumBackedgeSafepoints++;