From d136136d22e1c95700902ef4006a9f841150e8b2 Mon Sep 17 00:00:00 2001 From: ilgeco Date: Fri, 22 May 2026 15:21:02 +0200 Subject: [PATCH] Fix add of input in random order for compute_batch --- .../MaterializeMergeSchedule.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/PIM/Dialect/Spatial/Transforms/MergeComputeNodes/MaterializeMergeSchedule.cpp b/src/PIM/Dialect/Spatial/Transforms/MergeComputeNodes/MaterializeMergeSchedule.cpp index 14a2184..dded1d0 100644 --- a/src/PIM/Dialect/Spatial/Transforms/MergeComputeNodes/MaterializeMergeSchedule.cpp +++ b/src/PIM/Dialect/Spatial/Transforms/MergeComputeNodes/MaterializeMergeSchedule.cpp @@ -551,15 +551,19 @@ BlockArgument appendInput(MaterializerState& state, MaterializedClass& materiali return it->second; materializedClass.inputs.push_back(input); - if (auto compute = dyn_cast(materializedClass.op)) + if (auto compute = dyn_cast(materializedClass.op)) { compute.getInputsMutable().append(ValueRange(input)); - else + BlockArgument arg = materializedClass.body->addArgument(input.getType(), input.getLoc()); + materializedClass.inputArgs[input] = arg; + } + else { cast(materializedClass.op).getInputsMutable().append(ValueRange(input)); - setOperandSegmentSizes(materializedClass.op, materializedClass.weights.size(), materializedClass.inputs.size()); - - BlockArgument arg = materializedClass.body->addArgument(input.getType(), input.getLoc()); - materializedClass.inputArgs[input] = arg; - return arg; + setOperandSegmentSizes(materializedClass.op, materializedClass.weights.size(), materializedClass.inputs.size()); + BlockArgument arg = materializedClass.body->insertArgument(materializedClass.body->getNumArguments()-1, input.getType(), input.getLoc()); + materializedClass.inputArgs[input] = arg; + return arg; + } + llvm_unreachable("Cannot reach here"); } Value createIndexConstant(MaterializerState& state, Operation* anchor, int64_t value) {