[llvm-branch-commits] [mlir] [mlir-c] Add 1:N TypeConverter conversion and materialization bindings (PR #208935)

Jacques Pienaar via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jul 21 01:50:31 PDT 2026


================
@@ -543,6 +543,22 @@ MlirLogicalResult mlirConversionPatternRewriterConvertRegionTypes(
                                                    *unwrap(typeConverter)));
 }
 
+void mlirConversionPatternRewriterReplaceOpWithMultiple(
+    MlirConversionPatternRewriter rewriter, MlirOperation op, intptr_t nRanges,
+    intptr_t *rangeSizes, MlirValue *values) {
+  SmallVector<SmallVector<Value>> ranges;
+  ranges.reserve(nRanges);
+  MlirValue *cur = values;
+  for (intptr_t i = 0; i < nRanges; ++i) {
+    SmallVector<Value> range;
+    range.reserve(rangeSizes[i]);
+    for (intptr_t j = 0; j < rangeSizes[i]; ++j, ++cur)
----------------
jpienaar wrote:

Avoid calculating the end size unless rangeSizes change (https://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop)

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


More information about the llvm-branch-commits mailing list