llvm/llvm-project

[MLIR][affine] Proper handling of vector load / stores in Affine dialect and transformations

Open

#115,989 opened on Nov 13, 2024

View on GitHub
 (11 comments) (0 reactions) (0 assignees)C++ (10,782 forks)batch import
good first issuemlir:affine

Repository metrics

Stars
 (26,378 stars)
PR merge metrics
 (Avg merge 1d 2h) (1,000 merged PRs in 30d)

Description

In the context of Issue-115849 , I see that affine transformation is producing invalid IR like below where vector is being stored to a memref of size 1x1xf32.

affine.vector_store %5, %alloc[0, 0] : memref<1x1xf32>, vector<64x64xf32>

%6 = affine.vector_load %alloc[0, 0] : memref<1x1xf32>, vector<64x512xf32>

I think validity of the affine transformations need to be enhanced by introducing good verifiers.

Contributor guide