This is an archive of the discontinued LLVM Phabricator instance.

[MC] [Win64EH] Check that ARM64 prologs and epilogs have the right matching number of instructions
ClosedPublic

Authored by mstorsjo on Aug 8 2022, 6:05 AM.

Details

Summary

This matches what was done for the ARM implementation (where getting the instruction sizes right is even more tricky, and hence needed tighter testing).

Diff Detail

Event Timeline

mstorsjo created this revision.Aug 8 2022, 6:05 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 8 2022, 6:05 AM
mstorsjo requested review of this revision.Aug 8 2022, 6:05 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 8 2022, 6:05 AM
mstorsjo updated this revision to Diff 464806.Oct 3 2022, 1:55 PM

Rebased, and fixed the wineh5.mir testcase which failed due to this patch.

With D134992, D135101 and D135103, I can manage to build large applications with this patch applied.

mstorsjo retitled this revision from [RFC] [MC] [Win64EH] Check that ARM64 prologs and epilogs have the right matching number of instructions to [MC] [Win64EH] Check that ARM64 prologs and epilogs have the right matching number of instructions.Oct 12 2022, 1:25 PM
mstorsjo edited the summary of this revision. (Show Details)

I removed the RFC tag from this patch now, since all the other prerequisites have landed, and all of VLC builds successfully with this applied. So with this in place, we can notice other cases right away, where we generate prologues that don't match the unwind data.

This revision is now accepted and ready to land.Oct 12 2022, 3:42 PM