[llvm] [SCEV] Move NoWrapFlags definition outside SCEV scope, use for SCEVUse. (PR #190199)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 2 08:59:25 PDT 2026


================
@@ -1046,6 +1046,20 @@ class SCEVLoopAddRecRewriter
   LoopToScevMapT ⤅
 };
 
+template <typename SCEVPtrT>
+inline SCEVWrap::NoWrapFlags
+SCEVUseT<SCEVPtrT>::getNoWrapFlags(SCEVWrap::NoWrapFlags Mask) const {
+  unsigned Flags = SCEV::FlagAnyWrap;
+  if (auto *NAry = dyn_cast<SCEVNAryExpr>(Base::getPointer()))
+    Flags = NAry->getNoWrapFlags();
+  // Use-flags only encode NUW/NSW in 2 bits; shift to align with NoWrapFlags.
+  unsigned UseFlags = Base::getInt() << 1;
----------------
nikic wrote:

Reuse getUseNoWrapFlags() here?

https://github.com/llvm/llvm-project/pull/190199


More information about the llvm-commits mailing list