61 "non-EH CFI not yet supported in prologue with EHABI lowering");
77 bool forceEmitPersonality =
80 bool shouldEmitPersonality = forceEmitPersonality ||
83 !shouldEmitPersonality)
85 else if (shouldEmitPersonality) {
104 void ARMException::emitTypeInfos(
unsigned TTypeEncoding) {
105 const std::vector<const GlobalValue *> &TypeInfos =
MMI->
getTypeInfos();
112 if (VerboseAsm && !TypeInfos.empty()) {
115 Entry = TypeInfos.size();
118 for (std::vector<const GlobalValue *>::const_reverse_iterator
119 I = TypeInfos.rbegin(), E = TypeInfos.rend();
I != E; ++
I) {
127 if (VerboseAsm && !FilterIds.empty()) {
132 for (std::vector<unsigned>::const_iterator
133 I = FilterIds.begin(), E = FilterIds.end();
I < E; ++
I) {
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
MCSymbol * getSymbol(const GlobalValue *GV) const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
void endModule() override
Emit all exception information that should come after the content.
Target specific streamer interface.
const MachineFunction * MF
The current machine function.
bool shouldEmitCFI
Per-function flag to indicate if frame CFI info should be emitted.
const Function * getFunction() const
getFunction - Return the LLVM function that this machine code represents
setjmp/longjmp based exceptions
virtual void emitPersonality(const MCSymbol *Personality)
MachineModuleInfo * MMI
Collected machine module information.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
const std::vector< unsigned > & getFilterIds() const
getFilterIds - Return a reference to the typeids encoding filters used in the current function...
TypeID
Definitions of all of the base types for the Type system.
void emitExceptionTable()
Emit landing pads and actions.
const std::vector< const GlobalValue * > & getTypeInfos() const
getTypeInfos - Return a reference to the C++ typeinfo for the current function.
virtual void emitCantUnwind()
void endFunction(const MachineFunction *) override
Gather and emit post-function exception information.
void beginFunction(const MachineFunction *MF) override
Gather pre-function exception information.
Constant * stripPointerCasts()
const MCAsmInfo * MAI
Target Asm Printer information.
bool hasPersonalityFn() const
Get the personality function associated with this function.
This class is intended to be used as a driving class for all asm writers.
EHPersonality classifyEHPersonality(const Value *Pers)
See if the given exception handling personality function is one that we understand.
ExceptionHandling getExceptionHandlingType() const
AsmPrinter * Asm
Target of directive emission.
virtual void emitFnStart()
Module.h This file contains the declarations for the Module class.
bool needsUnwindTableEntry() const
True if this function needs an unwind table.
void EmitTTypeReference(const GlobalValue *GV, unsigned Encoding) const
Emit reference to a ttype global with a specified encoding.
Constant * getPersonalityFn() const
const std::vector< LandingPadInfo > & getLandingPads() const
getLandingPads - Return a reference to the landing pad info for the current function.
CFIMoveType needsCFIMoves()
virtual void emitHandlerData()
bool isNoOpWithoutInvoke(EHPersonality Pers)
Return true if this personality may be safely removed if there are no invoke instructions remaining i...
ARMException(AsmPrinter *A)
const Function * getPersonality() const
getPersonality - Return a personality function if available.