[Mlir-commits] [mlir] [mlir][ArmSME] Switch to an attribute-based tile allocation scheme (PR #73253)
Cullen Rhodes
llvmlistbot at llvm.org
Mon Nov 27 02:38:49 PST 2023
================
@@ -506,6 +496,7 @@ struct TileVectorPrintOpConversion : public OpRewritePattern<vector::PrintOp> {
rewriter.setInsertionPointToStart(forOp.getBody());
// Extract the current row from the tile.
Value rowIndex = forOp.getInductionVar();
+ // FIXME: Forward tile IDs.
----------------
c-rhodes wrote:
This got me thinking. The tile allocation works by assigning tile IDs for the root operations that implement the `ArmSMETileOpInterface` and allocate tiles. An operation allocates a tile if it implements `getAllocatedTileType`, this includes:
```mlir
arm_sme.get_tile
arm_sme.zero
arm_sme.tile_load
arm_sme.outerproduct // (if no accumulator is specified)
```
the tile ID is then forwarded to any uses of the root that also implement the `ArmSMETileOpInterface`. Is this constraint necessary? If the tile ID could be forwarded to any use (i.e. non-ArmSME ops) could it fix this problem?
An alternative of course is to mirror ops such as `vector.print` in the ArmSME dialect with ops that implement this interface.
https://github.com/llvm/llvm-project/pull/73253
More information about the Mlir-commits
mailing list