Page MenuHomePhabricator

[IROutliner] Disallow functions that return twice
AcceptedPublic

Authored by AndrewLitteken on Sep 17 2021, 2:47 PM.

Details

Summary

Functions that return twice can cause the IR Outliner to miscompile the given program. These function rely on information about the stack to be the same, and this may not necessarily be the case if called from an outlined function. So, we simply call these instructions illegal for the outliner to remove.

Diff Detail

Event Timeline

AndrewLitteken created this revision.Sep 17 2021, 2:47 PM
AndrewLitteken requested review of this revision.Sep 17 2021, 2:47 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 17 2021, 2:47 PM
This revision is now accepted and ready to land.Sep 17 2021, 2:53 PM