This is an archive of the discontinued LLVM Phabricator instance.

[Matrix] Add minimal lowering pass that only requires TTI.
ClosedPublic

Authored by fhahn on Mar 26 2020, 10:36 AM.

Details

Summary

This patch adds a new variant of the matrix lowering pass that only does
a minimal lowering and only depends on TTI. The main purpose of this pass
is to have a pass with minimal dependencies to run as part of the backend
pipeline.

At the moment, the only difference to the regular lowering pass is that it
does not support remarks. But in subsequent patches add support for tiling
to the lowering pass which will require more analysis, which we do not want
to run in the backend, as the lowering should happen in the middle-end in
practice and running it in the backend is mostly for convenience when
running llc.

Diff Detail

Event Timeline

fhahn created this revision.Mar 26 2020, 10:36 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 26 2020, 10:36 AM
fhahn updated this revision to Diff 278278.Jul 15 2020, 12:17 PM

Rebase and ping :)

Is this used anywhere in the patch? If not please explain the plan in the description.

llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
1933

Needs a comment of its purpose. You should mention -O0 here and in the commit.

fhahn updated this revision to Diff 278523.Jul 16 2020, 9:41 AM

Is this used anywhere in the patch? If not please explain the plan in the description.

I've updated the O0 case to use it (just committed that today). D76858 will use it in the backend pipeline. I think the description should already mention that the intention is to use it in the backend pipeline, without having to compute DT/AA there. Should I add more details?

fhahn updated this revision to Diff 278529.Jul 16 2020, 10:03 AM

Update recently added -O0 test to show the difference in passes executed.

anemet accepted this revision.Jul 17 2020, 1:36 PM

Is this used anywhere in the patch? If not please explain the plan in the description.

I've updated the O0 case to use it (just committed that today). D76858 will use it in the backend pipeline. I think the description should already mention that the intention is to use it in the backend pipeline, without having to compute DT/AA there. Should I add more details?

Maybe that that is in a separate patch, up to you.

LGTM!

This revision is now accepted and ready to land.Jul 17 2020, 1:36 PM
This revision was automatically updated to reflect the committed changes.