This is an archive of the discontinued LLVM Phabricator instance.

[X86] Enable shrink-wrapping for frameless non-nounwind functions on platforms not using compact unwind
ClosedPublic

Authored by MaskRay on Oct 21 2020, 10:53 PM.

Details

Summary

The current compact unwind scheme does not work when the prologue is not at the
start (the instructions before the prologue cannot be described). (Technically
this is fixable, but it requires multiple compact unwind descriptors for one
function.)

rL255175 chose to not perform shrink-wrapping for frameless functions not
marked as nounwind to work around PR25614. This is overly limited, as platforms
not supporting compact unwind (all non-Darwin) does not need the workaround.
This patch restricts the limitation to compact unwind platforms.

Diff Detail

Event Timeline

MaskRay created this revision.Oct 21 2020, 10:53 PM
Herald added a project: Restricted Project. · View Herald TranscriptOct 21 2020, 10:53 PM
MaskRay requested review of this revision.Oct 21 2020, 10:53 PM
qcolombet accepted this revision.Nov 4 2020, 9:55 AM
This revision is now accepted and ready to land.Nov 4 2020, 9:55 AM
This revision was landed with ongoing or failed builds.Nov 4 2020, 4:52 PM
This revision was automatically updated to reflect the committed changes.