This is an archive of the discontinued LLVM Phabricator instance.

[LoopSink] Use MemorySSA with legacy pass manager
ClosedPublic

Authored by nikic on Apr 6 2022, 6:40 AM.

Details

Summary

LoopSink with the legacy pass manager still uses AST, because we can't compute MemorySSA conditionally. I think now that the legacy pass manager will be removed soon(TM) we don't need to care about compile-time impact here anymore. Additionally, since MemorySSA is no longer eagerly optimized, the impact is actually not that high anymore (0.2% regression: http://llvm-compile-time-tracker.com/compare.php?from=ed4e6e03981a37d54c4ac635b2bdb2c2fe8fec92&to=c3bfd875b637503adbeaccc59d19d8eb934bcfa7&stat=instructions)

This just makes legacy PM and new PM behavior line up -- as a followup I'll drop these options entirely and make MemorySSA use mandatory.

Diff Detail

Event Timeline

nikic created this revision.Apr 6 2022, 6:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 6 2022, 6:40 AM
nikic requested review of this revision.Apr 6 2022, 6:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 6 2022, 6:40 AM
nikic updated this revision to Diff 420827.Apr 6 2022, 6:45 AM

Update pipeline test

fhahn accepted this revision.Apr 6 2022, 8:20 AM
fhahn added a subscriber: fhahn.

LGTM, dropping the non-MSSA code path as follow up sounds good!

This revision is now accepted and ready to land.Apr 6 2022, 8:20 AM
asbirlea accepted this revision.Apr 6 2022, 9:55 AM

+1 to the additional cleanup.

This revision was landed with ongoing or failed builds.Apr 7 2022, 12:40 AM
This revision was automatically updated to reflect the committed changes.