This is an archive of the discontinued LLVM Phabricator instance.

[mlir] allow repeated payload in structured.fuse_into_containing
ClosedPublic

Authored by ftynse on May 15 2023, 5:32 AM.

Details

Summary

Structured fusion proceeds by iteratively finding the next suitable
producer to be fused into the loop. Therefore, it shouldn't matter if
the same producer is listed multiple times (e.g., it is used as multiple
operands). Adjust the implementation of the transform op to support this
case.

Also fix the checking code in the interpreter to actually respect the
TransformOpInterface indication that repeated payload is allowed, it
seems to have been accidentally dropped in one of the refactorings.

Diff Detail

Event Timeline

ftynse created this revision.May 15 2023, 5:32 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 15 2023, 5:32 AM
ftynse requested review of this revision.May 15 2023, 5:32 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 15 2023, 5:32 AM
springerm added inline comments.May 15 2023, 5:34 AM
mlir/test/Dialect/Linalg/transform-op-fuse-into-containing.mlir
283

Should this be %2?

ftynse updated this revision to Diff 522139.May 15 2023, 5:37 AM

Actually include all the changes.

mlir/test/Dialect/Linalg/transform-op-fuse-into-containing.mlir
283

Yep, pushed the wrong branch.

This revision is now accepted and ready to land.May 15 2023, 6:25 AM
This revision was landed with ongoing or failed builds.May 15 2023, 7:30 AM
This revision was automatically updated to reflect the committed changes.