Page MenuHomePhabricator

Make DT a transitive dependency of LI.

Authored by eugenis on Jul 17 2019, 4:21 PM.



LoopInfoWrapperPass::verify uses DT, which means DT must be alive
even if it has no direct users.

Fixes a crash in expensive checks mode.

Diff Detail


Event Timeline

eugenis created this revision.Jul 17 2019, 4:21 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 17 2019, 4:21 PM
Herald added a subscriber: hiraditya. · View Herald Transcript

This fixes
I've added a pass that preservesCFG; following passes use LI but not DT. Without the transitive dependency, the pass manager kills DT before my pass as there are no future users, but then calls LoopInfoWrapperPass::verify that assumes that DT is still alive.

vitalybuka accepted this revision.Jul 17 2019, 4:27 PM
This revision is now accepted and ready to land.Jul 17 2019, 4:27 PM
pcc accepted this revision.Jul 17 2019, 4:30 PM


This revision was automatically updated to reflect the committed changes.