This is an archive of the discontinued LLVM Phabricator instance.

[mlir][Pass] Remove the restriction that PassManager can only run on ModuleOp
ClosedPublic

Authored by rriddle on Dec 1 2020, 7:42 PM.

Details

Summary

This was a somewhat important restriction in the past when ModuleOp was distinctly the top-level container operation, as well as before the pass manager had support for running nested pass managers natively. With these two issues fading away, there isn't really a good reason to enforce that a ModuleOp is the thing running within a pass manager. As such, this revision removes the restriction and allows for users to pass in the name of the operation that the pass manager will be scheduled on.

The only remaining dependency on BuiltinOps from Pass after this revision is due to FunctionPass, which will be resolved in a followup revision.

Depends On D92448

Diff Detail

Event Timeline

rriddle created this revision.Dec 1 2020, 7:42 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 1 2020, 7:42 PM
rriddle requested review of this revision.Dec 1 2020, 7:42 PM
mehdi_amini accepted this revision.Dec 1 2020, 8:19 PM

Sweet!

This revision is now accepted and ready to land.Dec 1 2020, 8:19 PM
This revision was landed with ongoing or failed builds.Dec 3 2020, 3:53 PM
This revision was automatically updated to reflect the committed changes.