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

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

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

lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
54

This should probably be an assert.

lib/CodeGen/MachineModuleInfo.cpp
568–569

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

Sounds good.

lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
54

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

lib/CodeGen/MachineModuleInfo.cpp
568–569

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.