From: Chris Lattner Date: Tue, 4 Dec 2001 08:13:06 +0000 (+0000) Subject: Fix bugs, don't do external methods which causes segv. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3bf915f2a296472a6bead0502c88bf74e90ec19b;p=oota-llvm.git Fix bugs, don't do external methods which causes segv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1414 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index a6e0bd12534..3b64756cb19 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -127,7 +127,8 @@ static bool TransformLoop(cfg::LoopInfo *Loops, cfg::Loop *Loop) { #ifdef DEBUG cerr << IndVars[i]; #endif - if (IV != Cannonical) { // Don't modify the cannonical indvar + // Don't modify the cannonical indvar or unrecognized indvars... + if (IV != Cannonical && IV->InductionType != InductionVariable::Unknown) { Instruction *Val = IterCount; if (!isa(IV->Step) || // If the step != 1 !cast(IV->Step)->equalsInt(1)) { @@ -183,6 +184,8 @@ static bool TransformLoop(cfg::LoopInfo *Loops, cfg::Loop *Loop) { } bool InductionVariableSimplify::doit(Method *M) { + if (M->isExternal()) return false; + // Figure out the loop structure of the method... cfg::LoopInfo Loops(M);