diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 2dc62823ec4..89429b6731d 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -794,10 +794,14 @@ static bool fitsInAddressMode(const SCEVHandle &V, const Type *UseTy,    if (const SCEVUnknown *SU = dyn_cast<SCEVUnknown>(V))      if (GlobalValue *GV = dyn_cast<GlobalValue>(SU->getValue())) { -      TargetLowering::AddrMode AM; -      AM.BaseGV = GV; -      AM.HasBaseReg = HasBaseReg; -      return TLI->isLegalAddressingMode(AM, UseTy); +      if (TLI) { +        TargetLowering::AddrMode AM; +        AM.BaseGV = GV; +        AM.HasBaseReg = HasBaseReg; +        return TLI->isLegalAddressingMode(AM, UseTy); +      } else { +        // Default: assume global addresses are not legal. +      }      }    return false;  | 

