41 cl::desc(
"Generate ARM EHABI tables with unwinding descriptors"),
102 void ARMException::EmitTypeInfos(
unsigned TTypeEncoding) {
103 const std::vector<const GlobalVariable *> &TypeInfos =
MMI->
getTypeInfos();
110 if (VerboseAsm && !TypeInfos.empty()) {
113 Entry = TypeInfos.size();
116 for (std::vector<const GlobalVariable *>::const_reverse_iterator
117 I = TypeInfos.rbegin(), E = TypeInfos.rend();
I != E; ++
I) {
125 if (VerboseAsm && !FilterIds.empty()) {
130 for (std::vector<unsigned>::const_iterator
131 I = FilterIds.begin(), E = FilterIds.end();
I < E; ++
I) {
virtual void AddComment(const Twine &T)
MachineModuleInfo * MMI
MMI - Collected machine module information.
MCSymbol * getSymbol(const GlobalValue *GV) const
virtual void AddBlankLine()
AddBlankLine - Emit a blank line to a .s file to pretty it up.
virtual void emitPersonality(const MCSymbol *Personality)=0
const std::vector< const GlobalVariable * > & getTypeInfos() const
const MachineFunction * MF
The current machine function.
unsigned getFunctionNumber() const
const Function * getFunction() const
const std::vector< unsigned > & getFilterIds() const
virtual void emitFnEnd()=0
void TidyLandingPads(DenseMap< MCSymbol *, uintptr_t > *LPMap=0)
virtual bool isVerboseAsm() const
virtual void emitFnStart()=0
AsmPrinter * Asm
Asm - Target of Dwarf emission.
virtual void BeginFunction(const MachineFunction *MF)
initializer< Ty > init(const Ty &Val)
virtual void EndFunction()
EndFunction - Gather and emit post-function exception information.
const std::vector< const Function * > & getPersonalities() const
getPersonalities - Return array of personality functions ever seen.
virtual bool EmitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute)=0
EmitSymbolAttribute - Add the given Attribute to Symbol.
virtual void EmitLabel(MCSymbol *Symbol)
bool needsUnwindTableEntry() const
True if this function needs an unwind table.
void EmitTTypeReference(const GlobalValue *GV, unsigned Encoding) const
EmitReference - Emit reference to a ttype global with a specified encoding.
virtual void emitCantUnwind()=0
const std::vector< LandingPadInfo > & getLandingPads() const
MCTargetStreamer & getTargetStreamer()
unsigned getPersonalityIndex() const
virtual void emitHandlerData()=0
void EmitExceptionTable()
static cl::opt< bool > EnableARMEHABIDescriptors("arm-enable-ehabi-descriptors", cl::Hidden, cl::desc("Generate ARM EHABI tables with unwinding descriptors"), cl::init(false))
MCSymbol * GetTempSymbol(StringRef Name, unsigned ID) const
ARMException(AsmPrinter *A)