mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	[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:
		@@ -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++;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user