diff --git a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/AMDAIESplitLogicalObjFifos.cpp b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/AMDAIESplitLogicalObjFifos.cpp index d1b07d772..a78d12e08 100644 --- a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/AMDAIESplitLogicalObjFifos.cpp +++ b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/AMDAIESplitLogicalObjFifos.cpp @@ -137,20 +137,23 @@ FailureOr getSplitStride(ArrayRef dmaOps, /// DMA(%c, %lhs) /// /// In the above snippet although we have 5 DMA ops for L2<->L1, only 3 of -/// them are unique. Hence we'd split %lhs into 3 unique splits, instead of 5. -static FailureOr fetchTotalUniqueL2L1(SmallVector copyLikeOps, bool fetchTarget) { - DenseSet uniqueLof; +/// them are unique. Hence we'd split %lhs into 3 unique splits, instead +/// of 5. +static FailureOr fetchTotalUniqueL2L1( + SmallVector copyLikeOps, bool fetchTarget) { + DenseSet uniqueLof; for (CopyOpInterface copyOp : copyLikeOps) { AMDAIE::LogicalObjectFifoFromMemrefOp lof = nullptr; if (fetchTarget) { lof = dyn_cast_if_present( - copyOp.getTarget().getDefiningOp()); + copyOp.getTarget().getDefiningOp()); } else { lof = dyn_cast_if_present( - copyOp.getSource().getDefiningOp()); + copyOp.getSource().getDefiningOp()); } if (!lof) { - return copyOp.emitOpError()<< "could not retrieve source/target objectFifo"; + return copyOp.emitOpError() + << "could not retrieve source/target objectFifo"; } uniqueLof.insert(lof); } @@ -181,7 +184,8 @@ LogicalResult collectSplittingDims( ModuleOp &moduleOp, const SmallVector &dmaObjFifoPairs, DenseMap &dmaSplitInfoMap, DenseMap - &objFifoSplitInfoMap, int64_t numCols) { + &objFifoSplitInfoMap, + int64_t numCols) { for (auto [dmaOp, objFifo] : dmaObjFifoPairs) { LLVM_DEBUG(llvm::dbgs() << "dmaOp: " << dmaOp << "\n"); LLVM_DEBUG(llvm::dbgs() << "objFifo: " << objFifo << "\n"); @@ -256,7 +260,8 @@ LogicalResult collectSplittingDims( // Calculate the new source stride to be used for splitting the DMA. int64_t newSourceStride = splitStride != 1 ? splitDimSize / splitStride : 1; - FailureOr maybeUniqueL2L1 = fetchTotalUniqueL2L1(objFifo.getCopyLikeConsumers(), /*fetchTarget=*/true); + FailureOr maybeUniqueL2L1 = fetchTotalUniqueL2L1( + objFifo.getCopyLikeConsumers(), /*fetchTarget=*/true); if (failed(maybeUniqueL2L1)) { objFifo.emitOpError() << "could not retrieve total unique L2<->L1 pairs"; @@ -277,7 +282,8 @@ LogicalResult collectSplittingDims( LLVM_DEBUG(llvm::dbgs() << "splitFactor: " << splitFactor << "\n"); dmaSplitInfoMap[dmaOp] = {sourceSplitDim, newSourceStride, targetSplitDim, 1, splitFactor}; - objFifoSplitInfoMap[objFifo] = {objFifoSplitDim, splitFactor, splitStride}; + objFifoSplitInfoMap[objFifo] = {objFifoSplitDim, splitFactor, + splitStride}; } else if (dmaOp.getSourceObjectFifo() == objFifo) { // Find outermost dimension in the access pattern that has stride == // sizeAfterSplit and size != 1. @@ -323,7 +329,8 @@ LogicalResult collectSplittingDims( // Calculate the new target stride to be used for splitting the DMA. int64_t newTargetStride = splitStride != 1 ? splitDimSize / splitStride : 1; - FailureOr maybeUniqueL2L1 = fetchTotalUniqueL2L1(objFifo.getCopyLikeProducers(), /*fetchTarget=*/false); + FailureOr maybeUniqueL2L1 = fetchTotalUniqueL2L1( + objFifo.getCopyLikeProducers(), /*fetchTarget=*/false); if (failed(maybeUniqueL2L1)) { objFifo.emitOpError() << "could not retrieve total unique L2<->L1 pairs"; @@ -344,7 +351,8 @@ LogicalResult collectSplittingDims( LLVM_DEBUG(llvm::dbgs() << "splitFactor: " << splitFactor << "\n"); dmaSplitInfoMap[dmaOp] = {sourceSplitDim, 1, targetSplitDim, newTargetStride, splitFactor}; - objFifoSplitInfoMap[objFifo] = {objFifoSplitDim, splitFactor, splitStride}; + objFifoSplitInfoMap[objFifo] = {objFifoSplitDim, splitFactor, + splitStride}; } } return success(); diff --git a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Utils/AMDAIELogicalObjFifoSplittingUtils.h b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Utils/AMDAIELogicalObjFifoSplittingUtils.h index a9a22c471..0905795fd 100644 --- a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Utils/AMDAIELogicalObjFifoSplittingUtils.h +++ b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Utils/AMDAIELogicalObjFifoSplittingUtils.h @@ -41,8 +41,8 @@ LogicalResult splitLogicalObjectFifo( /// the provided split factor. LogicalResult splitDoublyStridedOp( IRRewriter &rewriter, AMDAIE::DoublyStridedOpInterface op, - size_t sourceSplitDim = 0, size_t targetSplitDim = 0, - int64_t splitFactor, int64_t sourceSplitStride = 1, int64_t targetSplitStride = 1); + size_t sourceSplitDim = 0, size_t targetSplitDim = 0, int64_t splitFactor, + int64_t sourceSplitStride = 1, int64_t targetSplitStride = 1); } // namespace mlir::iree_compiler::AMDAIE