This is an archive of the discontinued LLVM Phabricator instance.

[NewPM] Bail out of devirtualization wrapper if the current SCC is invalidated
ClosedPublic

Authored by aeubanks on Jul 19 2021, 1:31 PM.

Details

Summary

The specific case that triggered this was when inlining a recursive
internal function into itself caused the recursion to go away, allowing
the inliner to mark the function as dead. The inliner marks the SCC as
invalidated but does not provide a new SCC to continue with.

This matches the implementations of ModuleToPostOrderCGSCCPassAdaptor
and CGSCCPassManager.

Fixes PR50363.

Diff Detail

Event Timeline

aeubanks created this revision.Jul 19 2021, 1:31 PM
aeubanks requested review of this revision.Jul 19 2021, 1:31 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 19 2021, 1:31 PM
asbirlea accepted this revision.Jul 19 2021, 2:57 PM

Thank you for tracking this down!

This revision is now accepted and ready to land.Jul 19 2021, 2:57 PM
This revision was landed with ongoing or failed builds.Jul 19 2021, 3:08 PM
This revision was automatically updated to reflect the committed changes.