MLIR-AIE 1.4.5.dev
CanonicalizeTrivialReadAccessSubviewOpPattern Struct Reference

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

Inheritance diagram for CanonicalizeTrivialReadAccessSubviewOpPattern:
Collaboration diagram for CanonicalizeTrivialReadAccessSubviewOpPattern:

Public Member Functions

LogicalResult matchAndRewrite (vector::TransferReadOp readOp, PatternRewriter &rewriter) const override

Detailed Description

Pattern to canonicalize trivial vector.transfer_read operations on subviews.

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

INPUT: subview = memref.subview memref [offset0, offset1, ...] result = vector.transfer_read subview[0, 0, ...]

OUTPUT: result = vector.transfer_read memref[offset0, offset1, ...]

The pattern only matches when:

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

Definition at line 473 of file VectorToVectorConversions.cpp.

Member Function Documentation

◆ matchAndRewrite()

LogicalResult CanonicalizeTrivialReadAccessSubviewOpPattern::matchAndRewrite ( vector::TransferReadOp readOp,
PatternRewriter & rewriter ) const
inlineoverride

Definition at line 477 of file VectorToVectorConversions.cpp.


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