From: Benjamin Kramer Date: Thu, 28 Sep 2017 14:47:39 +0000 (+0000) Subject: [LoopUnroll] Fix use after poison. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b11cf60dbe4b328252488bd9610fd80145f6a28;p=llvm [LoopUnroll] Fix use after poison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314418 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/LoopUnrollPass.cpp b/lib/Transforms/Scalar/LoopUnrollPass.cpp index a7822c9c791..add18f3a0bf 100644 --- a/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -1304,6 +1304,9 @@ PreservedAnalyses LoopUnrollPass::run(Function &F, // for unrolling is only needed to get optimization remarks emitted in // a forward order. Loop &L = *Worklist.pop_back_val(); +#ifndef NDEBUG + Loop *ParentL = L.getParentLoop(); +#endif // The API here is quite complex to call, but there are only two interesting // states we support: partial and full (or "simple") unrolling. However, to @@ -1326,7 +1329,6 @@ PreservedAnalyses LoopUnrollPass::run(Function &F, // The parent must not be damaged by unrolling! #ifndef NDEBUG - Loop *ParentL = L.getParentLoop(); if (Result != LoopUnrollResult::Unmodified && ParentL) ParentL->verifyLoop(); #endif