[Mlir-commits] [mlir] [MLIR][Affine] Fix affine loop fusion with vector ops #115849, #120227 (PR #122799)

Uday Bondhugula llvmlistbot at llvm.org
Mon Feb 3 00:50:20 PST 2025


================
@@ -237,6 +299,58 @@ static void sinkSequentialLoops(MemRefDependenceGraph::Node *node) {
   node->op = newRootForOp;
 }
 
+/// Creates a private memref to be used by vector operations.
+/// TODO: The difference between this and 'createPrivateMemRef' is that
+/// the system for calculating the bounds and constraints doesn't
+/// support vector operations. Thus, we use the shape of the vector
+/// as our newly created private memref instead of using a constraint
+/// system.
+static Value createPrivateVectorOpMemRef(
+    AffineForOp forOp, Operation *srcStoreOpInst, unsigned dstLoopDepth,
+    std::optional<unsigned> fastMemorySpace, uint64_t localBufSizeThreshold) {
----------------
bondhugula wrote:

We shouldn't create a new method duplicating some of the logic. Instead, unify the two, i.e., extend `createPrivateMemRef` for this.

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


More information about the Mlir-commits mailing list