diff options
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h index ad5ee87ffef..0fd26e3b6a7 100644 --- a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h +++ b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h @@ -166,6 +166,18 @@ namespace llvm { return (NoWrapFlags)(SubclassData & Mask); } + bool hasNoUnsignedWrap() const { + return getNoWrapFlags(SCEV::FlagNUW) != SCEV::FlagAnyWrap; + } + + bool hasNoSignedWrap() const { + return getNoWrapFlags(SCEV::FlagNSW) != SCEV::FlagAnyWrap; + } + + bool hasNoSelfWrap() const { + return getNoWrapFlags(SCEV::FlagNW) != SCEV::FlagAnyWrap; + } + /// Methods for support type inquiry through isa, cast, and dyn_cast: static inline bool classof(const SCEV *S) { return S->getSCEVType() == scAddExpr || |