From c20e8bfb90176ee9cd27b027c11a3c8c9c117dd6 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 17 Sep 2009 18:05:20 +0000 Subject: Teach ScalarEvolution how to reason about no-wrap flags on loops where the induction variable has a non-unit stride, such as {0,+,2}, and there are expressions such as {1,+,2} inside the loop formed with or or add nsw operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82151 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/ScalarEvolution.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/llvm/Analysis') diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h index e3be8ee..548f8f6 100644 --- a/include/llvm/Analysis/ScalarEvolution.h +++ b/include/llvm/Analysis/ScalarEvolution.h @@ -253,7 +253,8 @@ namespace llvm { /// CouldNotCompute if an intermediate computation overflows. const SCEV *getBECount(const SCEV *Start, const SCEV *End, - const SCEV *Step); + const SCEV *Step, + bool NoWrap); /// getBackedgeTakenInfo - Return the BackedgeTakenInfo for the given /// loop, lazily computing new values if the loop hasn't been analyzed -- cgit v1.1