This is an archive of the discontinued LLVM Phabricator instance.

Classify functions by EH personality type rather than using the triple
ClosedPublic

Authored by rnk on Jan 14 2015, 5:38 PM.

Details

Summary

This mostly reverts commit r222062 and replaces it with a new enum. At
some point this enum will grow at least for other MSVC EH personalities.

Diff Detail

Repository
rL LLVM

Event Timeline

rnk updated this revision to Diff 18201.Jan 14 2015, 5:38 PM
rnk retitled this revision from to Classify functions by EH personality type rather than using the triple.
rnk updated this object.
rnk added a reviewer: majnemer.
rnk added a subscriber: Unknown Object (MLST).
rnk added a comment.Jan 21 2015, 7:34 PM

Hey, I forgot about this. Take a look?

majnemer added inline comments.Jan 22 2015, 3:36 PM
include/llvm/MC/MCAsmInfo.h
491 ↗(On Diff #18201)

This name isn't great, can we come up with a better one? Perhaps usesCFI?

lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
54 ↗(On Diff #18201)

This should probably be an assert.

lib/CodeGen/MachineModuleInfo.cpp
568–569 ↗(On Diff #18201)

This doesn't work for C++ exceptions, they use the same personality routine name for 32-bit and 64-bit.

rnk added inline comments.Jan 23 2015, 10:04 AM
include/llvm/MC/MCAsmInfo.h
491 ↗(On Diff #18201)

Sounds good.

lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
54 ↗(On Diff #18201)

No, SjLj is chained on top of DwarfCFIException. See TargetPassConfig::addPassesToHandleExceptions() and the fallthrough. =/

lib/CodeGen/MachineModuleInfo.cpp
568–569 ↗(On Diff #18201)

It's possible that the 32 and 64 bit CxxFrameHandler3 tables are similar enough in nature that we won't want to classify them differently. If they are, I think we can get the triple in here and make a decision based on target isa.

This revision was automatically updated to reflect the committed changes.