[all-commits] [llvm/llvm-project] e947e7: [mlir][ArmSME] Extend streaming-mode pass to suppo...

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Fri Jun 16 02:27:05 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e947e760585c2a457775d8723e1503f7d5b56984
      https://github.com/llvm/llvm-project/commit/e947e760585c2a457775d8723e1503f7d5b56984
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSME/Transforms/Passes.h
    M mlir/include/mlir/Dialect/ArmSME/Transforms/Passes.td
    M mlir/lib/Dialect/ArmSME/Transforms/EnableArmStreaming.cpp
    M mlir/test/Dialect/ArmSME/enable-arm-streaming.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Extend streaming-mode pass to support enabling ZA

This patch extends the 'enable-arm-streaming' pass with a new option to
enable the ZA storage array by adding the 'arm_za' attribute to
'func.func' ops.

A later patch will insert `llvm.aarch64.sme.za.enable` at the beginning
of 'func.func' ops and `llvm.aarch64.sme.za.disable` before
`func.return` statements when lowering to LLVM dialect.

Currently the pass only supports enabling ZA with streaming-mode on but
the SME LDR, STR and ZERO instructions can access ZA when not in
streaming-mode (section B1.1.1, IDGNQM [1]), so it may be worth making
these options independent in the future.

N.B. This patch is generally useful in the context of SME enablement in
MLIR, but it will help enable writing an integration test for rewrite
pattern that lowers `vector.transfer_write` -> `zero {za}` (D152508).

[1] https://developer.arm.com/documentation/ddi0616/aa

Reviewed By: awarzynski, dcaballe

Differential Revision: https://reviews.llvm.org/D152695




More information about the All-commits mailing list