This is an archive of the discontinued LLVM Phabricator instance.

[Pipelines] Restore old DAE position in LTO pipeline
ClosedPublic

Authored by nikic on Mar 14 2023, 8:03 AM.

Details

Summary

This is a partial revert of D128830, restoring the previous position of DeadArgElim in the fat LTO pipeline. The motivation for this is a major code size regression observed in Rust and illustrated in the PhaseOrdering test.

This is a conservative fix restoring the previous pipeline order. The real problem is that the LTO pipeline is just broken: It doesn't have a CGSCC function simplification pipeline. The inliner is just being run by itself! This wouldn't be a problem if fat LTO used a standard design where ArgPromotion and DAE are only run after functions have already been simplified by the inliner pipeline.

Diff Detail

Event Timeline

nikic created this revision.Mar 14 2023, 8:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 14 2023, 8:03 AM
nikic requested review of this revision.Mar 14 2023, 8:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 14 2023, 8:03 AM
aeubanks accepted this revision.Mar 14 2023, 8:41 AM
This revision is now accepted and ready to land.Mar 14 2023, 8:41 AM
aeubanks added inline comments.Mar 14 2023, 9:00 AM
llvm/test/Transforms/PhaseOrdering/dae-dce.ll
2

should these unused prefixes be removed?

This revision was landed with ongoing or failed builds.Mar 14 2023, 9:00 AM
This revision was automatically updated to reflect the committed changes.