From c83889ad906b130f39ba8f776111e51439c2a7ac Mon Sep 17 00:00:00 2001 From: Torok Edwin Date: Mon, 27 Oct 2008 10:18:45 +0000 Subject: [PATCH] Avoid crashing if instruction is not part of a loop. If it is not part of a loop it is obviously invariant wrt to all loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58240 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/LoopVR.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Analysis/LoopVR.cpp b/lib/Analysis/LoopVR.cpp index 7f5de259caf..d0b77b89f0a 100644 --- a/lib/Analysis/LoopVR.cpp +++ b/lib/Analysis/LoopVR.cpp @@ -247,12 +247,13 @@ ConstantRange LoopVR::compute(Value *V) { return ConstantRange(cast(V->getType())->getBitWidth(), false); LoopInfo &LI = getAnalysis(); - ScalarEvolution &SE = getAnalysis(); Loop *L = LI.getLoopFor(I->getParent()); - if (L->isLoopInvariant(I)) + if (!L || L->isLoopInvariant(I)) return ConstantRange(cast(V->getType())->getBitWidth(), false); + ScalarEvolution &SE = getAnalysis(); + SCEVHandle S = SE.getSCEV(I); if (isa(S) || isa(S)) return ConstantRange(cast(V->getType())->getBitWidth(), false);