From 68a1944070caa33d73390e1a6d956c6abdbea872 Mon Sep 17 00:00:00 2001 From: Benjamin Maxwell Date: Wed, 3 Jul 2024 10:04:51 +0100 Subject: [mlir][vector] Project out anonymous bounds in ScalableValueBoundsConstraintSet (#96499) If we don't eliminate these columns, then in some cases we fail to compute a scalable bound. Test case reduced from a real-world example. --- mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mlir/lib') diff --git a/mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp b/mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp index 9c36537..4a826f0 100644 --- a/mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp +++ b/mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp @@ -8,6 +8,7 @@ #include "mlir/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.h" #include "mlir/Dialect/Vector/IR/VectorOps.h" + namespace mlir::vector { FailureOr @@ -74,6 +75,7 @@ ScalableValueBoundsConstraintSet::computeScalableBound( return p.first != scalableCstr.getVscaleValue() && !isStartingPoint; }; scalableCstr.projectOut(projectOutFn); + scalableCstr.projectOutAnonymous(/*except=*/pos); // Also project out local variables (these are not tracked by the // ValueBoundsConstraintSet). for (unsigned i = 0, e = scalableCstr.cstr.getNumLocalVars(); i < e; ++i) { -- cgit v1.1