From: Max Kazantsev Date: Tue, 19 Feb 2019 11:13:58 +0000 (+0000) Subject: [NFC] Store loop header in a local to keep it available after the loop is deleted X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=394aa566582c66f2f31bb4bed521206c7b18be59;p=llvm [NFC] Store loop header in a local to keep it available after the loop is deleted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354313 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/lib/Transforms/Scalar/LoopSimplifyCFG.cpp index eb8de34c3af..fd417055f9c 100644 --- a/lib/Transforms/Scalar/LoopSimplifyCFG.cpp +++ b/lib/Transforms/Scalar/LoopSimplifyCFG.cpp @@ -526,8 +526,10 @@ public: // Collect all available information about status of blocks after constant // folding. analyze(); + BasicBlock *Header = L.getHeader(); + (void)Header; - LLVM_DEBUG(dbgs() << "In function " << L.getHeader()->getParent()->getName() + LLVM_DEBUG(dbgs() << "In function " << Header->getParent()->getName() << ": "); if (HasIrreducibleCFG) { @@ -539,7 +541,7 @@ public: if (FoldCandidates.empty()) { LLVM_DEBUG( dbgs() << "No constant terminator folding candidates found in loop " - << L.getHeader()->getName() << "\n"); + << Header->getName() << "\n"); return false; } @@ -547,8 +549,7 @@ public: if (DeleteCurrentLoop) { LLVM_DEBUG( dbgs() - << "Give up constant terminator folding in loop " - << L.getHeader()->getName() + << "Give up constant terminator folding in loop " << Header->getName() << ": we don't currently support deletion of the current loop.\n"); return false; } @@ -559,8 +560,7 @@ public: L.getNumBlocks()) { LLVM_DEBUG( dbgs() << "Give up constant terminator folding in loop " - << L.getHeader()->getName() - << ": we don't currently" + << Header->getName() << ": we don't currently" " support blocks that are not dead, but will stop " "being a part of the loop after constant-folding.\n"); return false; @@ -571,8 +571,7 @@ public: LLVM_DEBUG(dump()); LLVM_DEBUG(dbgs() << "Constant-folding " << FoldCandidates.size() - << " terminators in loop " << L.getHeader()->getName() - << "\n"); + << " terminators in loop " << Header->getName() << "\n"); // Make the actual transforms. handleDeadExits(); @@ -580,8 +579,7 @@ public: if (!DeadLoopBlocks.empty()) { LLVM_DEBUG(dbgs() << "Deleting " << DeadLoopBlocks.size() - << " dead blocks in loop " << L.getHeader()->getName() - << "\n"); + << " dead blocks in loop " << Header->getName() << "\n"); deleteDeadLoopBlocks(); } else { // If we didn't do updates inside deleteDeadLoopBlocks, do them here. @@ -592,7 +590,7 @@ public: #ifndef NDEBUG // Make sure that we have preserved all data structures after the transform. assert(DT.verify() && "DT broken after transform!"); - assert(DT.isReachableFromEntry(L.getHeader())); + assert(DT.isReachableFromEntry(Header)); LI.verify(DT); #endif