This is an archive of the discontinued LLVM Phabricator instance.

[MachineOutliner] Don't outline functions starting with PATCHABLE_FUNCTION_ENTER/FENTRL_CALL
ClosedPublic

Authored by MaskRay on Dec 13 2021, 2:00 AM.

Details

Summary

MachineOutliner may outline a "patchable-function-entry" function whose body has
a TargetOpcode::PATCHABLE_FUNCTION_ENTER MachineInstr. This is incorrect because
the special code sequence must stay unchanged to be used at run-time.
Avoid outlining PATCHABLE_FUNCTION_ENTER. While here, avoid outlining FENTRY_CALL too
(which doesn't reproduce currently) to allow phase ordering flexibility.

Fixes #52635

Diff Detail

Event Timeline

MaskRay created this revision.Dec 13 2021, 2:00 AM
MaskRay requested review of this revision.Dec 13 2021, 2:00 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 13 2021, 2:00 AM
This revision is now accepted and ready to land.Dec 13 2021, 10:40 AM
MaskRay edited the summary of this revision. (Show Details)Dec 13 2021, 1:19 PM
MaskRay retitled this revision from [MachineOutliner] Don't outline functions with the "patchable-function-entry" attribute to [MachineOutliner] Don't outline functions starting with PATCHABLE_FUNCTION_ENTER/FENTRL_CALL.Dec 13 2021, 1:21 PM
This revision was landed with ongoing or failed builds.Dec 13 2021, 1:24 PM
This revision was automatically updated to reflect the committed changes.