aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
diff options
context:
space:
mode:
authorAndrzej Warzyński <andrzej.warzynski@arm.com>2025-07-17 19:02:08 +0100
committerGitHub <noreply@github.com>2025-07-17 19:02:08 +0100
commit3b11aaaf94fe6c7b4ccfd031f952265f706c1b68 (patch)
tree501b65657efb5b2fbe7b27eac6180b02f226dd26 /llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
parente73d1a5341fafb1eadb77b787eb6e65630b4db3a (diff)
downloadllvm-3b11aaaf94fe6c7b4ccfd031f952265f706c1b68.zip
llvm-3b11aaaf94fe6c7b4ccfd031f952265f706c1b68.tar.gz
llvm-3b11aaaf94fe6c7b4ccfd031f952265f706c1b68.tar.bz2
[mlir][linalg] Add support for scalable vectorization of linalg.mmt4d (#146531)
This patch adds support for scalable vectorization of linalg.mmt4d. The key design change is the introduction of a new vectorizer state variable: * `assumeDynamicDimsMatchVecSizes` ...along with the corresponding Transform dialect attribute: * `assume_dynamic_dims_match_vec_sizes`. This flag instructs the vectorizer to assume that dynamic memref/tensor dimensions match the corresponding vector sizes (fixed or scalable). With this assumption, masking becomes unnecessary, which simplifies the lowering pipeline significantly. While this assumption is not universally valid, it typically holds for `linalg.mmt4d`. Inputs and outputs are explicitly packed using `linalg.pack`, and this packing includes padding, ensuring that dimension sizes align with vector sizes (*). * Related discussion: https://github.com/llvm/llvm-project/issues/143920 An upcoming patch will include an end-to-end test that leverages scalable vectorization of linalg.mmt4d to demonstrate the newly enabled functionality. This would not be feasible without the changes introduced here, as it would otherwise require additional logic to handle complex - but ultimately redundant - masks. (*) This holds provided that the tile sizes used for packing match the vector sizes used during vectorization. It is the user’s responsibility to enforce this.
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfoImpls.cpp')
0 files changed, 0 insertions, 0 deletions