This is an archive of the discontinued LLVM Phabricator instance.

Make the implicit nesting behavior of the PassManager user-controllable and default to false
ClosedPublic

Authored by mehdi_amini on Nov 2 2020, 11:06 PM.

Details

Summary

This is an error prone behavior, I frequently have ~20 min debugging sessions when I hit
an unexpected implicit nesting. This default makes the C++ API safer for users.

Depends On D90669

Diff Detail

Event Timeline

mehdi_amini created this revision.Nov 2 2020, 11:06 PM
mehdi_amini requested review of this revision.Nov 2 2020, 11:06 PM
rriddle accepted this revision.Nov 2 2020, 11:25 PM

Nice, this is really clean.

Can you add a unit test exercising the fatal error?

mlir/include/mlir/Pass/PassManager.h
51–53

This deserves some documentation.

This revision is now accepted and ready to land.Nov 2 2020, 11:25 PM
rriddle added inline comments.Nov 2 2020, 11:28 PM
mlir/include/mlir/Pass/PassManager.h
152–153

Also, this comment needs to be updated in the previous revision.

Address comments

This revision was landed with ongoing or failed builds.Nov 3 2020, 3:18 AM
This revision was automatically updated to reflect the committed changes.
silvas added a subscriber: silvas.Nov 4 2020, 2:11 PM

Are users expected to migrate to explicit mode?

They are encouraged to, but we don't consider the implicit behavior deprecated so they do how they see fit.