This is an archive of the discontinued LLVM Phabricator instance.

[NewPM] Allow passes to never be skipped
AbandonedPublic

Authored by aeubanks on Jul 10 2020, 10:21 AM.

Details

Summary

PassInfoMixin now declares that passes inheriting from it are by default
optional. Using RequiredPassInfoMixin overrides the pass to be required.

All adaptors/managers must be required, since the pass(es) they are
wrapping may be required.

In the future, optnone, opt-bisect and llc -startr/-stop will use this mechanism to
determine which passes to skip.

This is an alternative to https://reviews.llvm.org/D82344.

Diff Detail

Event Timeline

aeubanks created this revision.Jul 10 2020, 10:21 AM
Herald added a project: Restricted Project. · View Herald Transcript
aeubanks updated this revision to Diff 277101.Jul 10 2020, 10:48 AM

Actually use isRequired() in PassInstrumentation::runBeforePass()

aeubanks updated this revision to Diff 277116.Jul 10 2020, 12:07 PM

Add tests (taken from https://reviews.llvm.org/D82344, thanks ychen)

aeubanks edited the summary of this revision. (Show Details)Jul 10 2020, 12:08 PM
aeubanks abandoned this revision.Jul 20 2020, 5:10 PM