This is an archive of the discontinued LLVM Phabricator instance.

[mlir][scf][Transform] Refactor transform.fuse_into_containing_op so it is iterative and supports output fusion.
ClosedPublic

Authored by nicolasvasilache on Sep 16 2022, 8:27 AM.

Details

Summary

This revision revisits the implementation of transform.fuse_into_containing_op so that it iterates on
producers one use at a time.

Support is added to fuse a producer through a foreach_thread shared tensor argument, in which case we
tile and fuse the op inside the containing op and update the shared tensor argument to the unique destination operand.
If one cannot find such a unique destination operand the transform fails.

Diff Detail

Event Timeline

nicolasvasilache requested review of this revision.Sep 16 2022, 8:27 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 16 2022, 8:27 AM
ThomasRaoux accepted this revision.Sep 16 2022, 8:54 AM
ThomasRaoux added a subscriber: ThomasRaoux.

LGTM

This revision is now accepted and ready to land.Sep 16 2022, 8:54 AM

Drop spurious dependences

This revision was landed with ongoing or failed builds.Sep 16 2022, 9:21 AM
This revision was automatically updated to reflect the committed changes.