MLIR-AIE 1.4.5.dev
CanonicalizeTrivialWriteAccessSubviewOpPattern Struct Reference

Pattern to canonicalize trivial vector.transfer_write operations on subviews. More...

Inheritance diagram for CanonicalizeTrivialWriteAccessSubviewOpPattern:
Collaboration diagram for CanonicalizeTrivialWriteAccessSubviewOpPattern:

Public Member Functions

LogicalResult matchAndRewrite (vector::TransferWriteOp writeOp, PatternRewriter &rewriter) const override

Detailed Description

Pattern to canonicalize trivial vector.transfer_write operations on subviews.

This pattern eliminates unnecessary memref.subview operations when the transfer_write accesses the subview with all-zero indices. It transforms:

INPUT: subview = memref.subview memref [offset0, offset1, ...] vector.transfer_write value, subview[0, 0, ...]

OUTPUT: vector.transfer_write value, memref[offset0, offset1, ...]

The pattern only matches when:

  • The base of transfer_write is defined by a memref.subview operation
  • All indices in the transfer_write are constant zeros

Definition at line 517 of file VectorToVectorConversions.cpp.

Member Function Documentation

◆ matchAndRewrite()

LogicalResult CanonicalizeTrivialWriteAccessSubviewOpPattern::matchAndRewrite ( vector::TransferWriteOp writeOp,
PatternRewriter & rewriter ) const
inlineoverride

Definition at line 521 of file VectorToVectorConversions.cpp.


The documentation for this struct was generated from the following file: