[llvm] r194970 - Utils/LoopUnroll.cpp: Tweak (StringRef)OldName to be valid until it is used, since r194601.

NAKAMURA Takumi geek4civic at gmail.com
Sun Nov 17 10:05:34 PST 2013


Author: chapuni
Date: Sun Nov 17 12:05:34 2013
New Revision: 194970

URL: http://llvm.org/viewvc/llvm-project?rev=194970&view=rev
Log:
Utils/LoopUnroll.cpp: Tweak (StringRef)OldName to be valid until it is used, since r194601.

eraseFromParent() invalidates OldName.

Modified:
    llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp

Modified: llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp?rev=194970&r1=194969&r2=194970&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp Sun Nov 17 12:05:34 2013
@@ -90,6 +90,7 @@ static BasicBlock *FoldBlockIntoPredeces
   // Move all definitions in the successor to the predecessor...
   OnlyPred->getInstList().splice(OnlyPred->end(), BB->getInstList());
 
+  // OldName will be valid until erased.
   StringRef OldName = BB->getName();
 
   // Erase basic block from the function...
@@ -102,12 +103,13 @@ static BasicBlock *FoldBlockIntoPredeces
     }
   }
   LI->removeBlock(BB);
-  BB->eraseFromParent();
 
   // Inherit predecessor's name if it exists...
   if (!OldName.empty() && !OnlyPred->hasName())
     OnlyPred->setName(OldName);
 
+  BB->eraseFromParent();
+
   return OnlyPred;
 }
 





More information about the llvm-commits mailing list