[llvm] [LAA] Collect no-wrap predicates separately in getPtrStride/isNoWrap. (PR #203787)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 14 14:15:36 PDT 2026


================
@@ -2653,19 +2653,15 @@ class PredicatedScalarEvolution {
   getAsAddRec(Value *V,
               SmallVectorImpl<const SCEVPredicate *> *WrapPredsAdded = nullptr);
 
-  /// Proves that V doesn't overflow by adding SCEV predicate.
-  LLVM_ABI void setNoOverflow(Value *V,
-                              SCEVWrapPredicate::IncrementWrapFlags Flags);
-
-  /// Returns true if we've proved that V doesn't wrap by means of a SCEV
-  /// predicate.
+  /// Returns true if we've statically proved that V doesn't wrap.
   LLVM_ABI bool hasNoOverflow(Value *V,
                               SCEVWrapPredicate::IncrementWrapFlags Flags);
 
   /// Returns the ScalarEvolution analysis used.
   ScalarEvolution *getSE() const { return &SE; }
 
-  /// We need to explicitly define the copy constructor because of FlagsMap.
+  /// We need to explicitly define the copy constructor because of the unique
+  /// SCEVUnionPredicate owned by Preds.
----------------
artagnon wrote:

```suggestion
  /// We need to explicitly define the copy constructor due to the ownership of the SCEVUnionPredicate Preds.
```

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


More information about the llvm-commits mailing list