[Mlir-commits] [mlir] [mlir][Interfaces] `ValueBoundsOpInterface`: Add API to compare values (PR #86915)
Matthias Springer
llvmlistbot at llvm.org
Mon Apr 8 04:32:59 PDT 2024
================
@@ -220,24 +221,37 @@ class ValueBoundsConstraintSet
/// proven. This could be because the specified relation does in fact not hold
/// or because there is not enough information in the constraint set. In other
/// words, if we do not know for sure, this function returns "false".
- bool compare(Value lhs, std::optional<int64_t> lhsDim, ComparisonOperator cmp,
- Value rhs, std::optional<int64_t> rhsDim);
+ bool populateAndCompare(OpFoldResult lhs, std::optional<int64_t> lhsDim,
+ ComparisonOperator cmp, OpFoldResult rhs,
+ std::optional<int64_t> rhsDim);
+
+ /// Return "true" if "lhs cmp rhs" was proven to hold. Return "false" if the
+ /// specified relation could not be proven. This could be because the
+ /// specified relation does in fact not hold or because there is not enough
+ /// information in the constraint set. In other words, if we do not know for
+ /// sure, this function returns "false".
+ ///
+ /// This function keeps traversing the backward slice of lhs/rhs until could
+ /// prove the relation or until it ran out of IR.
+ static bool compare(OpFoldResult lhs, std::optional<int64_t> lhsDim,
----------------
matthias-springer wrote:
New API added in #87980.
https://github.com/llvm/llvm-project/pull/86915
More information about the Mlir-commits
mailing list