This is an archive of the discontinued LLVM Phabricator instance.

[WinEH] Teach AsmPrinter about funclets
ClosedPublic

Authored by majnemer on Sep 29 2015, 11:35 AM.

Details

Summary

Funclets have been turned into functions by the time they hit the object
file. Make sure that they have decent names for the symbol table and
CFI directives explaining how to reason about their prologues.

Diff Detail

Repository
rL LLVM

Event Timeline

majnemer updated this revision to Diff 36016.Sep 29 2015, 11:35 AM
majnemer retitled this revision from to [WinEH] Teach AsmPrinter about funclets.
majnemer updated this object.
majnemer added a reviewer: rnk.
majnemer added a subscriber: llvm-commits.
rnk accepted this revision.Sep 29 2015, 11:48 AM
rnk edited edge metadata.

lgtm, mostly test changes and comment changes.

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
2462 ↗(On Diff #36016)

Maybe: End the previous funclet and start a new one.

lib/CodeGen/AsmPrinter/WinException.cpp
181 ↗(On Diff #36016)

We should conditionalize this on Subtarget->isTargetCOFF() to make things easy for LLILAC.

test/CodeGen/X86/win-catchpad.ll
81 ↗(On Diff #36016)

Can you keep the line that matches the IR-level basic block name comment? That helps keep the test tight, since there are two handlers. I assume the LBBN_M label comes immediately afterwards.

test/CodeGen/X86/win-cleanuppad.ll
68 ↗(On Diff #36016)

ditto re IR-level basic block names.

100 ↗(On Diff #36016)

We should really change the asm label names we use for invokes to make it easier to FileCheck. Anyway, nothing to do here.

This revision is now accepted and ready to land.Sep 29 2015, 11:48 AM
This revision was automatically updated to reflect the committed changes.