[Cleanup] Replace llvm::zip with llvm::zip_equal. (#11579)
diff --git a/compiler/src/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp b/compiler/src/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp index 1a01ba7..74cc902 100644 --- a/compiler/src/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp +++ b/compiler/src/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp
@@ -130,7 +130,7 @@ auto barrierOp = entryBuilder.create<IREE::HAL::TensorBarrierOp>( importOp.getLoc(), tensorArgs, waitFence); for (auto [argIndex, readyArg] : - llvm::zip(tensorArgIndices, barrierOp.getResults())) { + llvm::zip_equal(tensorArgIndices, barrierOp.getResults())) { entryArgs[argIndex] = readyArg; } }
diff --git a/compiler/src/iree/compiler/Bindings/TFLite/Transforms/WrapEntryPoints.cpp b/compiler/src/iree/compiler/Bindings/TFLite/Transforms/WrapEntryPoints.cpp index 61f5bd1..4c4af1d 100644 --- a/compiler/src/iree/compiler/Bindings/TFLite/Transforms/WrapEntryPoints.cpp +++ b/compiler/src/iree/compiler/Bindings/TFLite/Transforms/WrapEntryPoints.cpp
@@ -159,8 +159,8 @@ } SmallVector<DynamicDims> inputDynamicDims; - for (auto input : - llvm::zip(funcOp.getArguments(), inputNames, funcType.getInputs())) { + for (auto input : llvm::zip_equal(funcOp.getArguments(), inputNames, + funcType.getInputs())) { auto argLoc = std::get<0>(input).getLoc(); auto name = (namePrefix + "_" + std::get<1>(input) + "_shape").str(); auto type = std::get<2>(input); @@ -170,7 +170,7 @@ createDynamicDimGlobals(argLoc, name, tensorType, moduleBuilder)); } SmallVector<DynamicDims> outputDynamicDims; - for (auto output : llvm::zip(outputNames, funcType.getResults())) { + for (auto output : llvm::zip_equal(outputNames, funcType.getResults())) { auto name = (namePrefix + "_" + std::get<0>(output) + "_shape").str(); auto type = std::get<1>(output); auto tensorType = type.dyn_cast<TensorType>(); @@ -220,7 +220,7 @@ recalculateBuilder.getFunctionType(/*inputs=*/TypeRange{}, /*outputs=*/TypeRange{})); for (auto inputValueDims : - llvm::zip(entryBlock.getArguments(), inputDynamicDims)) { + llvm::zip_equal(entryBlock.getArguments(), inputDynamicDims)) { auto inputValue = std::get<0>(inputValueDims); auto inputDynamicDims = std::get<1>(inputValueDims); auto inputPlaceholder = @@ -248,7 +248,7 @@ // We do this per exit-site so that if the function has multiple code // paths that may return different shape sizes we capture them all. for (auto outputValueDims : - llvm::zip(returnOp.getOperands(), outputDynamicDims)) { + llvm::zip_equal(returnOp.getOperands(), outputDynamicDims)) { auto outputValue = std::get<0>(outputValueDims); auto outputDynamicDims = std::get<1>(outputValueDims); SmallVector<Value> dynamicDims; @@ -515,7 +515,8 @@ auto *entryBlock = wrapperFuncOp.addEntryBlock(); auto entryBuilder = OpBuilder::atBlockBegin(entryBlock); SmallVector<Value> callOperands; - for (auto input : llvm::zip(entryBlock->getArguments(), inputDynamicDims)) { + for (auto input : + llvm::zip_equal(entryBlock->getArguments(), inputDynamicDims)) { auto arg = std::get<0>(input); auto inputDynamicDims = std::get<1>(input); SmallVector<Value> dynamicDims; @@ -531,7 +532,8 @@ auto callOp = entryBuilder.create<mlir::func::CallOp>( entryFuncOp.getLoc(), entryFuncOp, callOperands); SmallVector<Value> callResults; - for (auto output : llvm::zip(callOp.getResults(), outputDynamicDims)) { + for (auto output : + llvm::zip_equal(callOp.getResults(), outputDynamicDims)) { auto result = std::get<0>(output); auto outputDynamicDims = std::get<1>(output); SmallVector<Value> dynamicDims; @@ -544,7 +546,8 @@ callResults.push_back(entryBuilder.create<IREE::HAL::TensorExportOp>( result.getLoc(), bufferType, result, outputDynamicDims.tensorType, dynamicDims, /*target_storage=*/nullptr)); - for (auto it : llvm::zip(dynamicDims, outputDynamicDims.globalOps)) { + for (auto it : + llvm::zip_equal(dynamicDims, outputDynamicDims.globalOps)) { auto dynamicDim = std::get<0>(it); auto globalOp = std::get<1>(it); entryBuilder.create<IREE::Util::GlobalStoreOp>(
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Conversion/TensorToFlow/Patterns.cpp b/compiler/src/iree/compiler/Dialect/Flow/Conversion/TensorToFlow/Patterns.cpp index f956568..ca705c1 100644 --- a/compiler/src/iree/compiler/Dialect/Flow/Conversion/TensorToFlow/Patterns.cpp +++ b/compiler/src/iree/compiler/Dialect/Flow/Conversion/TensorToFlow/Patterns.cpp
@@ -170,8 +170,8 @@ return failure(); } SmallVector<Value> outputDynamicShapes; - for (auto shape : - llvm::zip(reshapeOp.getResultType().getShape(), outputShape[0])) { + for (auto shape : llvm::zip_equal(reshapeOp.getResultType().getShape(), + outputShape[0])) { if (std::get<0>(shape) != ShapedType::kDynamic) continue; outputDynamicShapes.push_back(std::get<1>(shape)); }
diff --git a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp index 80772f0..b948164 100644 --- a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp +++ b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp
@@ -47,7 +47,7 @@ static void createArgs(ArrayRef<OpAsmParser::UnresolvedOperand> operands, ArrayRef<Type> types, SmallVector<OpAsmParser::Argument> &args) { - for (auto argAndType : llvm::zip(operands, types)) { + for (auto argAndType : llvm::zip_equal(operands, types)) { auto &arg = args.emplace_back(); arg.ssaName = std::get<0>(argAndType); arg.type = std::get<1>(argAndType); @@ -68,8 +68,8 @@ << workgroupCount.getNumArguments() << " arguments but dispatch provides " << workload.size(); } - for (auto it : llvm::enumerate(llvm::zip(workgroupCount.getArgumentTypes(), - workload.getTypes()))) { + for (auto it : llvm::enumerate(llvm::zip_equal( + workgroupCount.getArgumentTypes(), workload.getTypes()))) { auto expectedType = std::get<0>(it.value()); auto actualType = std::get<1>(it.value()); if (expectedType != actualType) { @@ -164,7 +164,7 @@ ShapedType::kDynamic); auto targetType = dispatchType; if (staticSizes != targetType.getShape() || - llvm::any_of(llvm::zip(dynamicSizes, dispatchTypeDims), + llvm::any_of(llvm::zip_equal(dynamicSizes, dispatchTypeDims), [](std::tuple<Value, Value> en) { return std::get<0>(en) != std::get<1>(en); })) { @@ -211,7 +211,7 @@ // Verify the return types match. for (auto returnOp : body.getOps<IREE::Flow::ReturnOp>()) { - for (auto it : llvm::zip(returnTypes, returnOp.getOperandTypes())) { + for (auto it : llvm::zip_equal(returnTypes, returnOp.getOperandTypes())) { if (std::get<0>(it) != std::get<1>(it)) { return returnOp.emitOpError() << "operands do not match expected region return types"; @@ -288,7 +288,8 @@ // Verify terminator. auto term = dyn_cast<Flow::ReturnOp>(getBody().front().getTerminator()); if (!term) return emitOpError() << "expected 'flow.return' terminator"; - for (const auto &it : llvm::zip(getResultTypes(), term->getOperandTypes())) + for (const auto &it : + llvm::zip_equal(getResultTypes(), term->getOperandTypes())) if (std::get<0>(it) != std::get<1>(it)) return term->emitOpError() << "operand types do not match with parent results"; @@ -860,7 +861,8 @@ << "workload operands and workgroup count args mismatch (" << workload.size() << " vs " << region.getNumArguments() << ")"; } - for (auto it : llvm::enumerate(llvm::zip(workload, region.getArguments()))) { + for (auto it : + llvm::enumerate(llvm::zip_equal(workload, region.getArguments()))) { auto workloadValue = std::get<0>(it.value()); auto capturedArg = std::get<1>(it.value()); if (workloadValue.getType() != capturedArg.getType()) {
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ConvertLinalgTensorOps.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ConvertLinalgTensorOps.cpp index b37fbc8..a684176 100644 --- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ConvertLinalgTensorOps.cpp +++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ConvertLinalgTensorOps.cpp
@@ -49,8 +49,8 @@ return failure(); } SmallVector<Value> outputDynamicShapes; - for (auto shape : - llvm::zip(reshapeOp.getResultType().getShape(), outputShape[0])) { + for (auto shape : llvm::zip_equal(reshapeOp.getResultType().getShape(), + outputShape[0])) { if (std::get<0>(shape) != ShapedType::kDynamic) continue; outputDynamicShapes.push_back(std::get<1>(shape)); }
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp index bf0ce6e..5ec9d45 100644 --- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp +++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp
@@ -77,8 +77,8 @@ if (lhsBlock.getNumArguments() != rhsBlock.getNumArguments()) { return false; } - for (auto argPair : - llvm::zip(lhsBlock.getArguments(), rhsBlock.getArguments())) { + for (auto argPair : llvm::zip_equal(lhsBlock.getArguments(), + rhsBlock.getArguments())) { auto &lhsArg = std::get<0>(argPair); auto &rhsArg = std::get<1>(argPair); if (lhsArg.getType() != rhsArg.getType()) return false; @@ -103,11 +103,14 @@ llvm::ReversePostOrderTraversal<Block *> traversal(&b); rhsBlocks.insert(traversal.begin(), traversal.end()); } - for (auto blockPair : llvm::zip(lhsBlocks, rhsBlocks)) { + if (lhsBlocks.size() != rhsBlocks.size()) return false; + for (auto blockPair : llvm::zip_equal(lhsBlocks, rhsBlocks)) { auto &lhsBlock = std::get<0>(blockPair); auto &rhsBlock = std::get<1>(blockPair); - for (auto opPair : - llvm::zip(lhsBlock->getOperations(), rhsBlock->getOperations())) { + auto &lhsOperations = lhsBlock->getOperations(); + auto &rhsOperations = rhsBlock->getOperations(); + if (lhsOperations.size() != rhsOperations.size()) return false; + for (auto opPair : llvm::zip_equal(lhsOperations, rhsOperations)) { auto &lhsOp = std::get<0>(opPair); auto &rhsOp = std::get<1>(opPair); if (!isStructurallyEquivalentTo(lhsOp, rhsOp, mapping)) { @@ -145,7 +148,7 @@ // If the op references blocks (such as a branch) then we expect to have them // in the mapping already from the parent region to do the lhs->rhs mapping. for (auto successorPair : - llvm::zip(lhs.getSuccessors(), rhs.getSuccessors())) { + llvm::zip_equal(lhs.getSuccessors(), rhs.getSuccessors())) { auto *lhsSuccessor = std::get<0>(successorPair); auto *rhsSuccessor = std::get<1>(successorPair); if (rhsSuccessor != parentMapping.lookup(lhsSuccessor)) return false; @@ -155,7 +158,7 @@ // For many ops if the result types don't match it's a good (cheap) indicator // that the operands won't match either so this still allows a somewhat-early // exit prior to the full traversal. - for (auto resultPair : llvm::zip(lhs.getResults(), rhs.getResults())) { + for (auto resultPair : llvm::zip_equal(lhs.getResults(), rhs.getResults())) { auto &lhsValue = std::get<0>(resultPair); auto &rhsValue = std::get<1>(resultPair); if (lhsValue.getType() != rhsValue.getType()) return false; @@ -164,7 +167,8 @@ // Check operands using the lhs->rhs mapping; since this op is only consuming // these values they should already be defined in the mapping. - for (auto operandPair : llvm::zip(lhs.getOperands(), rhs.getOperands())) { + for (auto operandPair : + llvm::zip_equal(lhs.getOperands(), rhs.getOperands())) { auto &lhsValue = std::get<0>(operandPair); auto &rhsValue = std::get<1>(operandPair); if (lhsValue.getType() != rhsValue.getType()) return false; @@ -172,7 +176,7 @@ } // Recurse into regions. - for (auto regionPair : llvm::zip(lhs.getRegions(), rhs.getRegions())) { + for (auto regionPair : llvm::zip_equal(lhs.getRegions(), rhs.getRegions())) { auto &lhsRegion = std::get<0>(regionPair); auto &rhsRegion = std::get<1>(regionPair); @@ -238,7 +242,7 @@ duplicateExecutableOps.push_back(duplicateExecutableOp); // Record entry point reference replacements. - for (auto exportOpPair : llvm::zip( + for (auto exportOpPair : llvm::zip_equal( duplicateExecutableOp.getBlock().getOps<ExecutableExportOp>(), referenceExecutableOp.getBlock() .getOps<ExecutableExportOp>())) {
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp index 3f4110b..6bc35c9 100644 --- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp +++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp
@@ -298,8 +298,8 @@ auto &expandedGlobal = globalMap[op.getGlobal()]; builder.create<IREE::Util::GlobalStoreOp>(op.getLoc(), expandedValue.tensor, expandedGlobal.tensorOp.getName()); - for (auto it : - llvm::zip(expandedValue.dynamicDims, expandedGlobal.dynamicDimOps)) { + for (auto it : llvm::zip_equal(expandedValue.dynamicDims, + expandedGlobal.dynamicDimOps)) { builder.create<IREE::Util::GlobalStoreOp>(op.getLoc(), std::get<0>(it), std::get<1>(it).getName()); } @@ -458,7 +458,8 @@ op.getLoc(), op.getCondition(), op.getTrueValue(), op.getFalseValue()); SmallVector<Value> selectedDims; - for (auto it : llvm::zip(trueValue.dynamicDims, falseValue.dynamicDims)) { + for (auto it : + llvm::zip_equal(trueValue.dynamicDims, falseValue.dynamicDims)) { selectedDims.push_back( builder .create<arith::SelectOp>(op.getLoc(), op.getCondition(),
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Conversion/ConversionTarget.cpp b/compiler/src/iree/compiler/Dialect/HAL/Conversion/ConversionTarget.cpp index 13906b2..8850714 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Conversion/ConversionTarget.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Conversion/ConversionTarget.cpp
@@ -50,7 +50,7 @@ OperationState state{srcOp->getLoc(), dstOpName}; state.addAttributes(srcOp->getAttrs()); - for (auto srcDstOperand : llvm::zip(srcOp->getOperands(), operands)) { + for (auto srcDstOperand : llvm::zip_equal(srcOp->getOperands(), operands)) { auto dstOperand = std::get<1>(srcDstOperand); // Check that any type that should have been mapped to buffer view was.
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp b/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp index 7891fe2..8a04ad4 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp
@@ -298,7 +298,8 @@ auto bufferType = rewriter.getType<IREE::HAL::BufferType>(); SmallVector<Value> results; - for (auto it : llvm::zip(allocOp.getResults(), allocOp.getStorageSizes())) { + for (auto it : + llvm::zip_equal(allocOp.getResults(), allocOp.getStorageSizes())) { auto resourceResult = std::get<0>(it); auto resourceType = resourceResult.getType().cast<IREE::Stream::ResourceType>();
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp index e4941eb..c96cb75 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp
@@ -691,8 +691,8 @@ SmallVector<Type> resultTypes; SetVector<Attribute> resultKeys; int i = 0; - for (auto [resultKey, resultType] : - llvm::zip(blockOp.getKeys().getValue(), blockOp.getResultTypes())) { + for (auto [resultKey, resultType] : llvm::zip_equal( + blockOp.getKeys().getValue(), blockOp.getResultTypes())) { if (resultKeys.insert(resultKey)) { resultIndices.set(i); resultTypes.push_back(resultType);
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp index b17a6b9..122cb56 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp
@@ -95,22 +95,23 @@ TypeRange bufferTypes, ValueRange bufferOffsets, ValueRange bufferLengths) { - llvm::interleaveComma( - llvm::zip(ordinals, buffers, bufferTypes, bufferOffsets, bufferLengths), - p, [&](std::tuple<Value, Value, Type, Value, Value> it) { - p.printNewline(); - p << " "; - p.printOperand(std::get<0>(it)); - p << " = ("; - p.printOperand(std::get<1>(it)); - p << " : "; - p.printType(std::get<2>(it)); - p << ")["; - p.printOperand(std::get<3>(it)); - p << ", "; - p.printOperand(std::get<4>(it)); - p << "]"; - }); + llvm::interleaveComma(llvm::zip_equal(ordinals, buffers, bufferTypes, + bufferOffsets, bufferLengths), + p, + [&](std::tuple<Value, Value, Type, Value, Value> it) { + p.printNewline(); + p << " "; + p.printOperand(std::get<0>(it)); + p << " = ("; + p.printOperand(std::get<1>(it)); + p << " : "; + p.printType(std::get<2>(it)); + p << ")["; + p.printOperand(std::get<3>(it)); + p << ", "; + p.printOperand(std::get<4>(it)); + p << "]"; + }); p.printNewline(); } @@ -140,7 +141,7 @@ << expectedTypes.size() << ")"; } for (auto pair : - llvm::enumerate(llvm::zip(op.getOperands(), expectedTypes))) { + llvm::enumerate(llvm::zip_equal(op.getOperands(), expectedTypes))) { auto operand = std::get<0>(pair.value()); auto expectedType = std::get<1>(pair.value()); if (operand.getType() != expectedType) { @@ -582,7 +583,7 @@ p << "\n"; p.getStream().indent(4); interleave( - llvm::zip(getConditions(), getConditionRegions()), + llvm::zip_equal(getConditions(), getConditionRegions()), [&](std::tuple<Attribute, Region &> it) { auto &conditionAttr = std::get<0>(it); auto &conditionRegion = std::get<1>(it);
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp index 3c20b2d..c66cdb1 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALTypes.cpp
@@ -549,7 +549,7 @@ void ExecutableObjectsAttr::print(AsmPrinter &p) const { auto &os = p.getStream(); os << "<{"; - llvm::interleaveComma(llvm::zip(getTargets(), getTargetObjects()), os, + llvm::interleaveComma(llvm::zip_equal(getTargets(), getTargetObjects()), os, [&](std::tuple<Attribute, Attribute> keyValue) { p.printAttribute(std::get<0>(keyValue)); os << " = "; @@ -562,7 +562,7 @@ IREE::HAL::ExecutableTargetAttr specificTargetAttr) { SmallVector<Attribute> allObjectAttrs; for (auto [targetAttr, objectsAttr] : - llvm::zip(getTargets(), getTargetObjects())) { + llvm::zip_equal(getTargets(), getTargetObjects())) { auto genericTargetAttr = targetAttr.cast<IREE::HAL::ExecutableTargetAttr>(); if (genericTargetAttr.isGenericOf(specificTargetAttr)) { auto objectsArrayAttr = objectsAttr.cast<ArrayAttr>();
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp b/compiler/src/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp index 3d9febf..b58e086 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp
@@ -300,8 +300,8 @@ } for (auto [exportOp, workgroupSize] : - llvm::zip(variantOp.getOps<IREE::HAL::ExecutableExportOp>(), - workgroupSizes)) { + llvm::zip_equal(variantOp.getOps<IREE::HAL::ExecutableExportOp>(), + workgroupSizes)) { auto *llvmFunc = llvmModule->getFunction(exportOp.getName()); if (llvmFunc->isDeclaration()) continue;
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp b/compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp index 58be32d..07de799 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp
@@ -84,7 +84,8 @@ } SmallVector<Binding> bindings; - for (auto it : llvm::zip(bindingAttrs, dispatchOp.getResourceLengths())) { + for (auto it : + llvm::zip_equal(bindingAttrs, dispatchOp.getResourceLengths())) { auto bindingAttr = std::get<0>(it).cast<IREE::HAL::InterfaceBindingAttr>(); APInt resourceLength;
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Transforms/InlineDeviceSwitches.cpp b/compiler/src/iree/compiler/Dialect/HAL/Transforms/InlineDeviceSwitches.cpp index e7c433c..727a7cd 100644 --- a/compiler/src/iree/compiler/Dialect/HAL/Transforms/InlineDeviceSwitches.cpp +++ b/compiler/src/iree/compiler/Dialect/HAL/Transforms/InlineDeviceSwitches.cpp
@@ -96,8 +96,8 @@ funcBuilder.setInsertionPoint(beforeBlock, beforeBlock->end()); for (auto condition : - llvm::enumerate(llvm::zip(switchOp.getConditions().getValue(), - switchOp.getConditionRegions()))) { + llvm::enumerate(llvm::zip_equal(switchOp.getConditions().getValue(), + switchOp.getConditionRegions()))) { auto conditionAttr = std::get<0>(condition.value()).cast<IREE::HAL::MatchAttrInterface>(); auto &conditionRegion = std::get<1>(condition.value());
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp b/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp index 3b51b03..b435f65 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp
@@ -229,7 +229,7 @@ IREE::Flow::TensorTraceOp op, OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const override { SmallVector<Value> exportedTensors; - for (auto it : llvm::zip(op.getOperands(), adaptor.getOperands())) { + for (auto it : llvm::zip_equal(op.getOperands(), adaptor.getOperands())) { auto tensorOperand = std::get<0>(it); auto resourceOperand = std::get<1>(it); auto source = @@ -273,7 +273,7 @@ SmallVector<Value> dispatchOperandLengths; SmallVector<Value> operandSizes; for (auto oldNewOperand : - llvm::zip(op.getArguments(), adaptor.getArguments())) { + llvm::zip_equal(op.getArguments(), adaptor.getArguments())) { auto oldOperand = std::get<0>(oldNewOperand); auto newOperand = std::get<1>(oldNewOperand); if (oldOperand.getType().isa<ShapedType>()) {
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp index 3528272..3b75830 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
@@ -638,7 +638,7 @@ // See if the sorted order is different than how they are stored in the op. bool orderChanged = false; - for (auto it : llvm::zip(slices, op.getPackedOffsets())) { + for (auto it : llvm::zip_equal(slices, op.getPackedOffsets())) { if (std::get<0>(it).packedOffset != std::get<1>(it)) { orderChanged = true; break; @@ -2650,8 +2650,9 @@ SmallVector<std::pair<Value, unsigned>> replacements; SmallVector<Value> newOperands; SmallVector<Value> newOperandSizes; - for (auto it : llvm::zip(op.getResourceOperands(), - op.getResourceOperandSizes(), op.getResults())) { + for (auto it : + llvm::zip_equal(op.getResourceOperands(), op.getResourceOperandSizes(), + op.getResults())) { auto operand = std::get<0>(it); auto operandSize = std::get<1>(it); auto result = std::get<2>(it);
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp index 728b912..49d718a 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp
@@ -43,7 +43,7 @@ static void createArgs(ArrayRef<OpAsmParser::UnresolvedOperand> operands, ArrayRef<Type> types, SmallVector<OpAsmParser::Argument> &args) { - for (auto argAndType : llvm::zip(operands, types)) { + for (auto argAndType : llvm::zip_equal(operands, types)) { auto &arg = args.emplace_back(); arg.ssaName = std::get<0>(argAndType); arg.type = std::get<1>(argAndType); @@ -64,8 +64,8 @@ << workgroupCount.getNumArguments() << " arguments but dispatch provides " << workload.size(); } - for (auto it : llvm::enumerate(llvm::zip(workgroupCount.getArgumentTypes(), - workload.getTypes()))) { + for (auto it : llvm::enumerate(llvm::zip_equal( + workgroupCount.getArgumentTypes(), workload.getTypes()))) { auto expectedType = std::get<0>(it.value()); auto actualType = std::get<1>(it.value()); if (expectedType != actualType) { @@ -170,7 +170,7 @@ return yieldOp.emitOpError() << "yield result count mismatch with parent op"; } - for (auto it : llvm::zip(results, yieldOp.getResourceOperands())) { + for (auto it : llvm::zip_equal(results, yieldOp.getResourceOperands())) { auto outerValue = std::get<0>(it); auto innerValue = std::get<1>(it); if (outerValue.getType() != innerValue.getType()) { @@ -179,7 +179,8 @@ << " but got " << innerValue.getType(); } } - for (auto it : llvm::zip(resultSizes, yieldOp.getResourceOperandSizes())) { + for (auto it : + llvm::zip_equal(resultSizes, yieldOp.getResourceOperandSizes())) { auto outerSize = std::get<0>(it); auto innerSize = std::get<1>(it); if (outerSize != innerSize) { @@ -340,7 +341,7 @@ Region &body) { p << "("; llvm::interleaveComma( - llvm::zip(operands, body.getArguments()), p, [&](auto it) { + llvm::zip_equal(operands, body.getArguments()), p, [&](auto it) { auto operand = std::get<0>(it); auto arg = std::get<1>(it); p << operand; @@ -421,7 +422,7 @@ ValueRange operandSizes, Region &body) { p << "("; llvm::interleaveComma( - llvm::zip(operands, body.getArguments()), p, [&](auto it) { + llvm::zip_equal(operands, body.getArguments()), p, [&](auto it) { auto operand = std::get<0>(it); auto arg = std::get<1>(it); p << operand; @@ -573,7 +574,7 @@ // Verify the return types match. for (auto returnOp : body.getOps<IREE::Stream::ReturnOp>()) { - for (auto it : llvm::zip(returnTypes, returnOp.getOperandTypes())) { + for (auto it : llvm::zip_equal(returnTypes, returnOp.getOperandTypes())) { if (std::get<0>(it) != std::get<1>(it)) { return returnOp.emitOpError() << "operands do not match expected region return types"; @@ -1692,8 +1693,8 @@ } } for (auto [i, result, resultSize] : - llvm::zip(llvm::seq<unsigned>(0, getResults().size()), getResults(), - getResultSizes())) { + llvm::zip_equal(llvm::seq<unsigned>(0, getResults().size()), + getResults(), getResultSizes())) { if (getTiedResultOperandIndex(i).has_value()) { // Already covered above. continue; @@ -1778,9 +1779,9 @@ static void getExecutionAsyncAccessRanges( Op op, SmallVectorImpl<AsyncAccessRange> &ranges) { unsigned tiedOperandBase = op.getTiedOperandsIndexAndLength().first; - for (auto [i, operand, operandSize] : - llvm::zip(llvm::seq<unsigned>(0, op.getResourceOperands().size()), - op.getResourceOperands(), op.getResourceOperandSizes())) { + for (auto [i, operand, operandSize] : llvm::zip_equal( + llvm::seq<unsigned>(0, op.getResourceOperands().size()), + op.getResourceOperands(), op.getResourceOperandSizes())) { if (!operand.getType().template isa<IREE::Stream::ResourceType>()) continue; ResourceAccessBitfield access = ResourceAccessBitfield::Read; auto tiedResults = op.getOperandTiedResults(tiedOperandBase + i); @@ -1793,8 +1794,8 @@ } } for (auto [i, result, resultSize] : - llvm::zip(llvm::seq<unsigned>(0, op.getResults().size()), - op.getResults(), op.getResultSizes())) { + llvm::zip_equal(llvm::seq<unsigned>(0, op.getResults().size()), + op.getResults(), op.getResultSizes())) { if (op.getTiedResultOperandIndex(i).has_value()) { // Already covered above. continue;
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ConvertToStream.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ConvertToStream.cpp index ca3b68d..d5f8737 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ConvertToStream.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ConvertToStream.cpp
@@ -142,7 +142,7 @@ SmallVector<Value> newOperands; newOperands.reserve(op->getNumOperands()); rewriter.setInsertionPoint(op); - for (auto it : llvm::zip(op->getOperands(), operands)) { + for (auto it : llvm::zip_equal(op->getOperands(), operands)) { auto oldOperand = std::get<0>(it); auto newOperand = std::get<1>(it); if (!newOperand.getType().isa<IREE::Stream::ResourceType>() &&
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp index b62c107..7ece758 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp
@@ -86,7 +86,7 @@ for (auto dispatchOp : dispatchOps) { llvm::EquivalenceClasses<unsigned> ec; DenseMap<Value, unsigned> leaders; - for (auto it : llvm::enumerate(llvm::zip( + for (auto it : llvm::enumerate(llvm::zip_equal( dispatchOp.getResources(), dispatchOp.getResourceAccesses()))) { auto resource = std::get<0>(it.value());
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackAllocations.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackAllocations.cpp index 28f0bfe..82c7293 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackAllocations.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackAllocations.cpp
@@ -92,8 +92,9 @@ auto slabSize = packOp.getTotalLength(); // Replace all resources with subviews into the new slab. - for (auto it : llvm::zip(allocOp.getResults(), packOp.getPackedOffsets(), - allocOp.getStorageSizes())) { + for (auto it : + llvm::zip_equal(allocOp.getResults(), packOp.getPackedOffsets(), + allocOp.getStorageSizes())) { auto originalValue = std::get<0>(it); auto subviewOffset = std::get<1>(it); auto subviewLength = std::get<2>(it);
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackConstants.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackConstants.cpp index 3ce2073..315590d 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackConstants.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PackConstants.cpp
@@ -278,7 +278,7 @@ SmallVector<Copy> copies; SmallVector<Value> capturedResources; SmallVector<Value> capturedResourceSizes; - for (auto it : llvm::zip(storageResources, storageBuffers)) { + for (auto it : llvm::zip_equal(storageResources, storageBuffers)) { auto &storageResource = std::get<0>(it); auto storageBuffer = std::get<1>(it); @@ -366,7 +366,7 @@ SmallVector<Type> resultTypes; Value ok; auto zero = indexSet.get(0); - for (auto it : llvm::zip(storageResources, storageBuffers)) { + for (auto it : llvm::zip_equal(storageResources, storageBuffers)) { auto &storageResource = std::get<0>(it); auto storageBuffer = std::get<1>(it); auto tryMapOp = builder.create<IREE::Stream::ResourceTryMapOp>( @@ -415,7 +415,7 @@ // Use the result of either the direct mapping or the staging upload. UploadResult uploadResult; uploadResult.timepoint = ifTimepoint; - for (auto it : llvm::zip(storageResources, ifResources)) { + for (auto it : llvm::zip_equal(storageResources, ifResources)) { auto &storageResource = std::get<0>(it); auto ifResource = std::get<1>(it); uploadResult.allocations.push_back({ @@ -434,8 +434,8 @@ SmallVector<ConstantSlice> slices; slices.reserve(constantsOp.getResults().size()); for (auto [result, resultSize, value] : - llvm::zip(constantsOp.getResults(), constantsOp.getResultSizes(), - constantsOp.getValues())) { + llvm::zip_equal(constantsOp.getResults(), constantsOp.getResultSizes(), + constantsOp.getValues())) { auto resourceType = result.getType().cast<IREE::Stream::ResourceType>(); if (resourceType.getLifetime() != lifetime) continue; slices.push_back(ConstantSlice{ @@ -480,7 +480,7 @@ } // Build subviews for all packed spans back into storage buffers. - for (auto it : llvm::zip(storageResources, uploadResult.allocations)) { + for (auto it : llvm::zip_equal(storageResources, uploadResult.allocations)) { auto &storageResource = std::get<0>(it); auto &allocatedStorage = std::get<1>(it); for (auto &span : storageResource.spans) {
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp index 7c91b76..b118c5d 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp
@@ -529,8 +529,8 @@ if (op.getAwaitTimepoint()) { newTimepoints.insert(op.getAwaitTimepoint()); } - for (auto it : - llvm::zip(op.getResourceOperands(), op.getResourceOperandSizes())) { + for (auto it : llvm::zip_equal(op.getResourceOperands(), + op.getResourceOperandSizes())) { auto operand = std::get<0>(it); auto operandSize = std::get<1>(it); auto timepointOperand =
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleConcurrency.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleConcurrency.cpp index 57852b5..35a0ab4 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleConcurrency.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleConcurrency.cpp
@@ -110,14 +110,15 @@ auto &entryBlock = concurrentOp.getBody().emplaceBlock(); SmallVector<Location> operandLocs(operandTypes.size(), concurrentOp.getLoc()); - for (auto args : llvm::zip( + for (auto args : llvm::zip_equal( operands, entryBlock.addArguments(operandTypes, operandLocs))) { mapping.map(std::get<0>(args), std::get<1>(args)); } builder = OpBuilder::atBlockBegin(&entryBlock); // Remap results for escaping outputs. - for (auto results : llvm::zip(partition->outs, concurrentOp.getResults())) { + for (auto results : + llvm::zip_equal(partition->outs, concurrentOp.getResults())) { parentMapping.map(std::get<0>(results), std::get<1>(results)); } } @@ -236,8 +237,8 @@ // We must do this per block as we'll be updating dominated block values. for (auto &partitionBuilder : partitionBuilders) { for (auto resultPair : - llvm::zip(partitionBuilder.partition->outs, - partitionBuilder.concurrentOp.getResults())) { + llvm::zip_equal(partitionBuilder.partition->outs, + partitionBuilder.concurrentOp.getResults())) { auto oldResult = std::get<0>(resultPair); auto newResult = std::get<1>(resultPair); oldResult.replaceAllUsesWith(newResult);
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp index 55eb54f..83f7b94 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp
@@ -111,14 +111,15 @@ // Add entry block and arguments. auto &entryBlock = executeOp.getBody().emplaceBlock(); SmallVector<Location> operandLocs(operandTypes.size(), executeOp.getLoc()); - for (auto args : llvm::zip( + for (auto args : llvm::zip_equal( operands, entryBlock.addArguments(operandTypes, operandLocs))) { mapping.map(std::get<0>(args), std::get<1>(args)); } builder = OpBuilder::atBlockBegin(&entryBlock); // Remap results for escaping outputs. - for (auto results : llvm::zip(partition->outs, executeOp.getResults())) { + for (auto results : + llvm::zip_equal(partition->outs, executeOp.getResults())) { parentMapping.map(std::get<0>(results), std::get<1>(results)); } } @@ -278,9 +279,9 @@ OpBuilder builder(executeOp); builder.setInsertionPointAfter(executeOp); - for (auto it : - llvm::zip(partitionBuilder.partition->outs, executeOp.getResults(), - executeOp.getResultSizes())) { + for (auto it : llvm::zip_equal(partitionBuilder.partition->outs, + executeOp.getResults(), + executeOp.getResultSizes())) { auto oldResult = std::get<0>(it); auto newResult = std::get<1>(it); auto newResultSize = std::get<2>(it);
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp index 8ec34b9..0776b9f 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp
@@ -187,7 +187,7 @@ // TODO(benvanik): invert this loop so that we preserve argument order. // Replace the arguments with lookups into the lookup table tensors. - for (auto it : llvm::zip(constantTable.sets, tableTensors)) { + for (auto it : llvm::zip_equal(constantTable.sets, tableTensors)) { auto &set = std::get<0>(it); auto tableTensor = std::get<1>(it); for (auto operandValues : llvm::enumerate(set.values)) {
diff --git a/compiler/src/iree/compiler/Dialect/Util/IR/ClosureOpUtils.cpp b/compiler/src/iree/compiler/Dialect/Util/IR/ClosureOpUtils.cpp index 2ef3907..9d004bc 100644 --- a/compiler/src/iree/compiler/Dialect/Util/IR/ClosureOpUtils.cpp +++ b/compiler/src/iree/compiler/Dialect/Util/IR/ClosureOpUtils.cpp
@@ -299,13 +299,13 @@ newResults.set_subtract(newClosureResults); assert(oldResults.size() == newResults.size() && "expected non-closure results to match"); - for (auto oldNewResult : llvm::zip(oldResults, newResults)) { + for (auto oldNewResult : llvm::zip_equal(oldResults, newResults)) { std::get<0>(oldNewResult).replaceAllUsesWith(std::get<1>(oldNewResult)); } // Replace original uses of the closure results. for (auto oldNewResult : - llvm::zip(preservedResults, newOp.getClosureResults())) { + llvm::zip_equal(preservedResults, newOp.getClosureResults())) { std::get<0>(oldNewResult).replaceAllUsesWith(std::get<1>(oldNewResult)); }
diff --git a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp index ab3192e..51882f2 100644 --- a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp +++ b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp
@@ -190,7 +190,7 @@ lengths.reserve(op.getLengths().size()); int64_t constantMin = INT64_MAX; int64_t constantMax = INT64_MIN; - for (auto range : llvm::zip(op.getOffsets(), op.getLengths())) { + for (auto range : llvm::zip_equal(op.getOffsets(), op.getLengths())) { auto offset = std::get<0>(range); auto length = std::get<1>(range); APInt rangeOffset, rangeLength; @@ -280,7 +280,7 @@ // preserved. using Range = std::tuple<Value, Value>; SetVector<Range> ranges; - for (auto range : llvm::zip(op.getOffsets(), op.getLengths())) { + for (auto range : llvm::zip_equal(op.getOffsets(), op.getLengths())) { ranges.insert(range); } if (ranges.size() == op.getOffsets().size()) return failure();
diff --git a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.cpp b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.cpp index a1769e3..d3036d6 100644 --- a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.cpp +++ b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.cpp
@@ -206,7 +206,7 @@ void printRangeList(OpAsmPrinter &p, Operation *op, OperandRange offsets, OperandRange lengths) { - llvm::interleaveComma(llvm::zip(offsets, lengths), p, [&](auto it) { + llvm::interleaveComma(llvm::zip_equal(offsets, lengths), p, [&](auto it) { auto offset = std::get<0>(it); auto length = std::get<1>(it); p << "[";
diff --git a/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp b/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp index 52cc4ea..5647fa6 100644 --- a/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp +++ b/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp
@@ -550,7 +550,7 @@ // Remap live old results -> new results. for (auto [oldValue, newValue] : - llvm::zip(newResults, newCallOp.getResults())) { + llvm::zip_equal(newResults, newCallOp.getResults())) { oldValue.replaceAllUsesWith(newValue); }
diff --git a/compiler/src/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp b/compiler/src/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp index c159e65..26c9eaa 100644 --- a/compiler/src/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp +++ b/compiler/src/iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp
@@ -383,7 +383,7 @@ // Marshal arguments to import types. SmallVector<Value> importArgs; for (auto [operand, importType] : - llvm::zip(operands, importSignature.getInputs())) { + llvm::zip_equal(operands, importSignature.getInputs())) { importArgs.push_back(castToImportType(operand, importType, rewriter)); } @@ -394,7 +394,7 @@ // Marshal results from import types. SmallVector<Value> callResults; for (auto [importResult, resultType] : - llvm::zip(newOp.getResults(), resultTypes)) { + llvm::zip_equal(newOp.getResults(), resultTypes)) { callResults.push_back( castFromImportType(importResult, resultType, rewriter)); }
diff --git a/compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp b/compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp index b3dfffb..4ef4a9a 100644 --- a/compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp +++ b/compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp
@@ -2964,7 +2964,8 @@ destDispatch = rewriter.createBlock(dest); BlockAndValueMapping refMapping; - for (auto pair : llvm::zip(op.getOperands(), dest->getArguments())) { + for (auto pair : + llvm::zip_equal(op.getOperands(), dest->getArguments())) { Value operand = std::get<0>(pair); BlockArgument blockArg = std::get<1>(pair);
diff --git a/compiler/src/iree/compiler/Dialect/VM/IR/VMOps.cpp b/compiler/src/iree/compiler/Dialect/VM/IR/VMOps.cpp index 98e660d..f2e5a06 100644 --- a/compiler/src/iree/compiler/Dialect/VM/IR/VMOps.cpp +++ b/compiler/src/iree/compiler/Dialect/VM/IR/VMOps.cpp
@@ -1187,7 +1187,7 @@ p << ' ' << op->getAttr("callee") << '('; int operand = 0; llvm::interleaveComma( - llvm::zip(getSegmentSizes(), getSegmentTypes()), p, + llvm::zip_equal(getSegmentSizes(), getSegmentTypes()), p, [&](std::tuple<APInt, Attribute> segmentSizeType) { int segmentSize = std::get<0>(segmentSizeType).getSExtValue(); Type segmentType = @@ -1225,7 +1225,7 @@ }); p << " : ("; llvm::interleaveComma( - llvm::zip(getSegmentSizes(), getSegmentTypes()), p, + llvm::zip_equal(getSegmentSizes(), getSegmentTypes()), p, [&](std::tuple<APInt, Attribute> segmentSizeType) { int segmentSize = std::get<0>(segmentSizeType).getSExtValue(); Type segmentType =
diff --git a/compiler/src/iree/compiler/Dialect/VM/Target/C/TranslateToCpp.cpp b/compiler/src/iree/compiler/Dialect/VM/Target/C/TranslateToCpp.cpp index 7e4c691..5ef44f9 100644 --- a/compiler/src/iree/compiler/Dialect/VM/Target/C/TranslateToCpp.cpp +++ b/compiler/src/iree/compiler/Dialect/VM/Target/C/TranslateToCpp.cpp
@@ -93,7 +93,7 @@ Block &successor = *branchOp.getSuccessor(); for (auto pair : - llvm::zip(branchOp.getOperands(), successor.getArguments())) { + llvm::zip_equal(branchOp.getOperands(), successor.getArguments())) { Value &operand = std::get<0>(pair); BlockArgument &argument = std::get<1>(pair); os << emitter.getOrCreateName(argument) << " = " @@ -117,7 +117,7 @@ << ") {\n"; // If condition is true. - for (auto pair : llvm::zip(condBranchOp.getTrueOperands(), + for (auto pair : llvm::zip_equal(condBranchOp.getTrueOperands(), trueSuccessor.getArguments())) { Value &operand = std::get<0>(pair); BlockArgument &argument = std::get<1>(pair); @@ -132,7 +132,7 @@ os << emitter.getOrCreateName(trueSuccessor) << ";\n"; os << "} else {\n"; // If condition is false. - for (auto pair : llvm::zip(condBranchOp.getFalseOperands(), + for (auto pair : llvm::zip_equal(condBranchOp.getFalseOperands(), falseSuccessor.getArguments())) { Value &operand = std::get<0>(pair); BlockArgument &argument = std::get<1>(pair); @@ -265,7 +265,7 @@ } } - for (auto pair : llvm::zip(iterArgs, operands)) { + for (auto pair : llvm::zip_equal(iterArgs, operands)) { if (failed(emitter.emitType(forOp.getLoc(), std::get<0>(pair).getType()))) return failure(); os << " " << emitter.getOrCreateName(std::get<0>(pair)) << " = "; @@ -306,7 +306,7 @@ Operation *yieldOp = forRegion.getBlocks().front().getTerminator(); // Copy yield operands into iterArgs at the end of a loop iteration. - for (auto pair : llvm::zip(iterArgs, yieldOp->getOperands())) { + for (auto pair : llvm::zip_equal(iterArgs, yieldOp->getOperands())) { BlockArgument iterArg = std::get<0>(pair); Value operand = std::get<1>(pair); os << emitter.getOrCreateName(iterArg) << " = " @@ -316,7 +316,7 @@ os.unindent() << "}"; // Copy iterArgs into results after the for loop. - for (auto pair : llvm::zip(results, iterArgs)) { + for (auto pair : llvm::zip_equal(results, iterArgs)) { OpResult result = std::get<0>(pair); BlockArgument iterArg = std::get<1>(pair); os << "\n" @@ -382,7 +382,7 @@ } if (failed(interleaveWithError( - llvm::zip(parentOp.getResults(), yieldOp.getOperands()), + llvm::zip_equal(parentOp.getResults(), yieldOp.getOperands()), [&](auto pair) -> LogicalResult { auto result = std::get<0>(pair); auto operand = std::get<1>(pair);
diff --git a/compiler/src/iree/compiler/Dialect/VMVX/Transforms/MaterializeConstants.cpp b/compiler/src/iree/compiler/Dialect/VMVX/Transforms/MaterializeConstants.cpp index 96224eb..e6e28f5 100644 --- a/compiler/src/iree/compiler/Dialect/VMVX/Transforms/MaterializeConstants.cpp +++ b/compiler/src/iree/compiler/Dialect/VMVX/Transforms/MaterializeConstants.cpp
@@ -112,7 +112,7 @@ Value elementSizeI32 = setterBuilder.create<arith::ConstantIntOp>( buffer.getLoc(), sizeof(uint32_t), 32); for (auto [ordinalGlobalOp, valueGlobalOp] : - llvm::zip(ordinalGlobalOps, valueGlobalOps)) { + llvm::zip_equal(ordinalGlobalOps, valueGlobalOps)) { Value loadedOrdinal = setterBuilder.create<IREE::Util::GlobalLoadOp>( ordinalGlobalOp.getLoc(), ordinalGlobalOp); Value bufferOffset = setterBuilder.create<arith::MulIOp>(
diff --git a/compiler/src/iree/compiler/InputConversion/MHLO/BroadcastingToLinalgPatterns.cpp b/compiler/src/iree/compiler/InputConversion/MHLO/BroadcastingToLinalgPatterns.cpp index 5b002cf..28917b7 100644 --- a/compiler/src/iree/compiler/InputConversion/MHLO/BroadcastingToLinalgPatterns.cpp +++ b/compiler/src/iree/compiler/InputConversion/MHLO/BroadcastingToLinalgPatterns.cpp
@@ -570,7 +570,8 @@ if (!lhsType.hasStaticShape() || !rhsType.hasStaticShape()) return rewriter.notifyMatchFailure(op, "not static shapes"); - for (auto extents : llvm::zip(lhsType.getShape(), rhsType.getShape())) { + for (auto extents : + llvm::zip_equal(lhsType.getShape(), rhsType.getShape())) { auto lhs_extent = std::get<0>(extents); auto rhs_extent = std::get<1>(extents); if (lhs_extent != rhs_extent) {
diff --git a/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp b/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp index 1e31584..62200e7 100644 --- a/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp +++ b/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp
@@ -1054,9 +1054,9 @@ operands.push_back(operand); } - if (llvm::all_of(llvm::zip(operands, op->getOperands()), [](auto pair) { - return std::get<0>(pair) == std::get<1>(pair); - })) + if (llvm::all_of( + llvm::zip_equal(operands, op->getOperands()), + [](auto pair) { return std::get<0>(pair) == std::get<1>(pair); })) return failure(); rewriter.replaceOpWithNewOp<Op>(op, op->getResultTypes(), operands,
diff --git a/compiler/src/iree/compiler/Modules/HAL/Inline/Conversion/StreamToHALInline/Patterns.cpp b/compiler/src/iree/compiler/Modules/HAL/Inline/Conversion/StreamToHALInline/Patterns.cpp index f893502..a457146 100644 --- a/compiler/src/iree/compiler/Modules/HAL/Inline/Conversion/StreamToHALInline/Patterns.cpp +++ b/compiler/src/iree/compiler/Modules/HAL/Inline/Conversion/StreamToHALInline/Patterns.cpp
@@ -72,7 +72,7 @@ SmallVector<Value> results; for (auto [resourceResult, storageSize] : - llvm::zip(allocOp.getResults(), allocOp.getStorageSizes())) { + llvm::zip_equal(allocOp.getResults(), allocOp.getStorageSizes())) { auto allocateOp = rewriter.create<IREE::HAL::Inline::BufferAllocateOp>( allocOp.getLoc(), deviceBufferType, hostBufferType, minAlignment, storageSize); @@ -434,8 +434,8 @@ SmallVector<Value> bindingBuffers; SmallVector<Value> bindingOffsets; for (auto [resource, resourceSize, resourceOffset] : - llvm::zip(adaptor.getResources(), adaptor.getResourceSizes(), - adaptor.getResourceOffsets())) { + llvm::zip_equal(adaptor.getResources(), adaptor.getResourceSizes(), + adaptor.getResourceOffsets())) { auto storage = getResourceStorage(loc, resource, resourceSize, rewriter); bindingBuffers.push_back(storage.buffer); bindingOffsets.push_back(resourceOffset);
diff --git a/compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/HALLoaderToVM/Patterns.cpp b/compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/HALLoaderToVM/Patterns.cpp index 684c217..a6247b1 100644 --- a/compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/HALLoaderToVM/Patterns.cpp +++ b/compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/HALLoaderToVM/Patterns.cpp
@@ -104,9 +104,9 @@ static_cast<int16_t>(adaptor.getBindingBuffers().size()), }; callOperands.append(pushConstants.begin(), pushConstants.end()); - for (auto it : - llvm::zip(adaptor.getBindingBuffers(), adaptor.getBindingOffsets(), - adaptor.getBindingLengths())) { + for (auto it : llvm::zip_equal(adaptor.getBindingBuffers(), + adaptor.getBindingOffsets(), + adaptor.getBindingLengths())) { callOperands.push_back(std::get<0>(it)); callOperands.push_back( castToImportType(std::get<1>(it), rewriter.getI64Type(), rewriter));
diff --git a/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderOps.cpp b/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderOps.cpp index 1071ce3..033fc39 100644 --- a/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderOps.cpp +++ b/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderOps.cpp
@@ -65,7 +65,7 @@ ValueRange bufferOffsets, ValueRange bufferLengths) { llvm::interleaveComma( - llvm::zip(buffers, bufferTypes, bufferOffsets, bufferLengths), p, + llvm::zip_equal(buffers, bufferTypes, bufferOffsets, bufferLengths), p, [&](std::tuple<Value, Type, Value, Value> it) { p.printNewline(); p << " "; @@ -165,7 +165,7 @@ SmallVector<Value> bindingOffsets; SmallVector<Value> bindingLengths; for (auto [bindingBuffer, bindingOffset] : - llvm::zip(op.getBindingBuffers(), op.getBindingOffsets())) { + llvm::zip_equal(op.getBindingBuffers(), op.getBindingOffsets())) { auto subspanOp = IREE::Util::BufferSubspanOp::findSubspanOp(bindingBuffer); if (!subspanOp) {