From 85da7543f9776a0eba58a2043f0b84d81c7a5ef8 Mon Sep 17 00:00:00 2001 From: Max Kazantsev Date: Tue, 1 Aug 2017 06:27:51 +0000 Subject: [IRCE][NFC] Add assert that AddRecExpr's step is not zero We should never return zero steps, ensure this fact by adding a sanity check when we are analyzing the induction variable. llvm-svn: 309661 --- llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp') diff --git a/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp b/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp index 99b4458ea0f..0c6a9f20fdd 100644 --- a/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp +++ b/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp @@ -779,6 +779,7 @@ LoopStructure::parseLoopStructure(ScalarEvolution &SE, BranchProbabilityInfo &BP if (const SCEVConstant *StepExpr = dyn_cast(AR->getStepRecurrence(SE))) { ConstantInt *StepCI = StepExpr->getValue(); + assert(!StepCI->isZero() && "Zero step?"); if (StepCI->isOne() || StepCI->isMinusOne()) { IsIncreasing = StepCI->isOne(); return true; -- cgit v1.2.3