reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/AsmPrinter/ARMException.cpp
   34   MCTargetStreamer &TS = *Asm->OutStreamer->getTargetStreamer();
   39   if (Asm->MAI->getExceptionHandlingType() == ExceptionHandling::ARM)
   42   AsmPrinter::CFIMoveType MoveType = Asm->needsCFIMoves();
   48       if (Asm->needsOnlyDebugCFIMoves())
   49         Asm->OutStreamer->EmitCFISections(false, true);
   54     Asm->OutStreamer->EmitCFIStartProc(false);
   71   if (!Asm->MF->getFunction().needsUnwindTableEntry() &&
   77       MCSymbol *PerSym = Asm->getSymbol(Per);
   78       Asm->OutStreamer->EmitSymbolAttribute(PerSym, MCSA_Global);
   89   if (Asm->MAI->getExceptionHandlingType() == ExceptionHandling::ARM)
   95   const MachineFunction *MF = Asm->MF;
   99   bool VerboseAsm = Asm->OutStreamer->isVerboseAsm();
  104     Asm->OutStreamer->AddComment(">> Catch TypeInfos <<");
  105     Asm->OutStreamer->AddBlankLine();
  111       Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--));
  112     Asm->EmitTTypeReference(GV, TTypeEncoding);
  115   Asm->OutStreamer->EmitLabel(TTBaseLabel);
  119     Asm->OutStreamer->AddComment(">> Filter TypeInfos <<");
  120     Asm->OutStreamer->AddBlankLine();
  129         Asm->OutStreamer->AddComment("FilterInfo " + Twine(Entry));
  132     Asm->EmitTTypeReference((TypeID == 0 ? nullptr : TypeInfos[TypeID - 1]),
lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
   42   if (!Asm->MF->getLandingPads().empty()) {
   43     MachineFunction *NonConstMF = const_cast<MachineFunction*>(Asm->MF);
   50     Asm->OutStreamer->EmitCFIEndProc();
   64   if (!Asm->MAI->usesCFIForEH())
   67   const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
   78     MCSymbol *Sym = Asm->getSymbol(Personality);
   79     TLOF.emitPersonalityValue(*Asm->OutStreamer, Asm->getDataLayout(), Sym);
   79     TLOF.emitPersonalityValue(*Asm->OutStreamer, Asm->getDataLayout(), Sym);
   95   AsmPrinter::CFIMoveType MoveType = Asm->needsCFIMoves();
   99   const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
  134     if (Asm->needsOnlyDebugCFIMoves())
  135       Asm->OutStreamer->EmitCFISections(false, true);
  139   Asm->OutStreamer->EmitCFIStartProc(/*IsSimple=*/false);
  154   const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
  156   const MCSymbol *Sym = TLOF.getCFIPersonalitySymbol(P, Asm->TM, MMI);
  157   Asm->OutStreamer->EmitCFIPersonality(Sym, PerEncoding);
  161     Asm->OutStreamer->EmitCFILsda(ESP(Asm), TLOF.getLSDAEncoding());
  161     Asm->OutStreamer->EmitCFILsda(ESP(Asm), TLOF.getLSDAEncoding());
lib/CodeGen/AsmPrinter/EHStreamer.cpp
   39 EHStreamer::EHStreamer(AsmPrinter *A) : Asm(A), MMI(Asm->MMI) {}
   87   const std::vector<unsigned> &FilterIds = Asm->MF->getFilterIds();
  240   bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj;
  243   for (const auto &MBB : *Asm->MF) {
  271       if (SawPotentiallyThrowing && Asm->MAI->usesCFIForEH()) {
  308           unsigned SiteNo = Asm->MF->getCallSiteBeginLabel(BeginLabel);
  350   const MachineFunction *MF = Asm->MF;
  378   bool IsSJLJ = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::SjLj;
  379   bool IsWasm = Asm->MAI->getExceptionHandlingType() == ExceptionHandling::Wasm;
  382                Asm->getObjFileLowering().getCallSiteEncoding();
  386   MCSection *LSDASection = Asm->getObjFileLowering().getLSDASection();
  421     TTypeEncoding = Asm->getObjFileLowering().getTTypeEncoding();
  428     Asm->OutStreamer->SwitchSection(LSDASection);
  429   Asm->EmitAlignment(Align(4));
  433     Asm->OutContext.getOrCreateSymbol(Twine("GCC_except_table")+
  434                                       Twine(Asm->getFunctionNumber()));
  435   Asm->OutStreamer->EmitLabel(GCCETSym);
  436   Asm->OutStreamer->EmitLabel(Asm->getCurExceptionSym());
  436   Asm->OutStreamer->EmitLabel(Asm->getCurExceptionSym());
  439   Asm->EmitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart");
  440   Asm->EmitEncodingByte(TTypeEncoding, "@TType");
  448     MCSymbol *TTBaseRefLabel = Asm->createTempSymbol("ttbaseref");
  449     TTBaseLabel = Asm->createTempSymbol("ttbase");
  450     Asm->EmitLabelDifferenceAsULEB128(TTBaseLabel, TTBaseRefLabel);
  451     Asm->OutStreamer->EmitLabel(TTBaseRefLabel);
  454   bool VerboseAsm = Asm->OutStreamer->isVerboseAsm();
  457   MCSymbol *CstBeginLabel = Asm->createTempSymbol("cst_begin");
  458   MCSymbol *CstEndLabel = Asm->createTempSymbol("cst_end");
  459   Asm->EmitEncodingByte(CallSiteEncoding, "Call site");
  460   Asm->EmitLabelDifferenceAsULEB128(CstEndLabel, CstBeginLabel);
  461   Asm->OutStreamer->EmitLabel(CstBeginLabel);
  472         Asm->OutStreamer->AddComment(">> Call Site " + Twine(idx) + " <<");
  473         Asm->OutStreamer->AddComment("  On exception at call site "+Twine(idx));
  475       Asm->EmitULEB128(idx);
  482           Asm->OutStreamer->AddComment("  Action: cleanup");
  484           Asm->OutStreamer->AddComment("  Action: " +
  487       Asm->EmitULEB128(S.Action);
  515       MCSymbol *EHFuncBeginSym = Asm->getFunctionBegin();
  522         EndLabel = Asm->getFunctionEnd();
  526         Asm->OutStreamer->AddComment(">> Call Site " + Twine(++Entry) + " <<");
  527       Asm->EmitCallSiteOffset(BeginLabel, EHFuncBeginSym, CallSiteEncoding);
  529         Asm->OutStreamer->AddComment(Twine("  Call between ") +
  532       Asm->EmitCallSiteOffset(EndLabel, BeginLabel, CallSiteEncoding);
  537           Asm->OutStreamer->AddComment("    has no landing pad");
  538         Asm->EmitCallSiteValue(0, CallSiteEncoding);
  541           Asm->OutStreamer->AddComment(Twine("    jumps to ") +
  543         Asm->EmitCallSiteOffset(S.LPad->LandingPadLabel, EHFuncBeginSym,
  552           Asm->OutStreamer->AddComment("  On action: cleanup");
  554           Asm->OutStreamer->AddComment("  On action: " +
  557       Asm->EmitULEB128(S.Action);
  560   Asm->OutStreamer->EmitLabel(CstEndLabel);
  570       Asm->OutStreamer->AddComment(">> Action Record " + Twine(++Entry) + " <<");
  579         Asm->OutStreamer->AddComment("  Catch TypeInfo " +
  582         Asm->OutStreamer->AddComment("  Filter TypeInfo " +
  585         Asm->OutStreamer->AddComment("  Cleanup");
  587     Asm->EmitSLEB128(Action.ValueForTypeID);
  595         Asm->OutStreamer->AddComment("  No further actions");
  598         Asm->OutStreamer->AddComment("  Continue to action "+Twine(NextAction));
  601     Asm->EmitSLEB128(Action.NextAction);
  605     Asm->EmitAlignment(Align(4));
  609   Asm->EmitAlignment(Align(4));
  614   const MachineFunction *MF = Asm->MF;
  618   bool VerboseAsm = Asm->OutStreamer->isVerboseAsm();
  623     Asm->OutStreamer->AddComment(">> Catch TypeInfos <<");
  624     Asm->OutStreamer->AddBlankLine();
  631       Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--));
  632     Asm->EmitTTypeReference(GV, TTypeEncoding);
  635   Asm->OutStreamer->EmitLabel(TTBaseLabel);
  639     Asm->OutStreamer->AddComment(">> Filter TypeInfos <<");
  640     Asm->OutStreamer->AddBlankLine();
  649         Asm->OutStreamer->AddComment("FilterInfo " + Twine(Entry));
  652     Asm->EmitULEB128(TypeID);
lib/CodeGen/AsmPrinter/WasmException.cpp
   27   Mangler::getNameWithPrefix(NameStr, "__cpp_exception", Asm->getDataLayout());
   28   if (Asm->OutContext.lookupSymbol(NameStr)) {
   29     MCSymbol *ExceptionSym = Asm->GetExternalSymbolSymbol("__cpp_exception");
   30     Asm->OutStreamer->EmitLabel(ExceptionSym);
   36   if (!Asm->MF->getLandingPads().empty()) {
   37     auto *NonConstMF = const_cast<MachineFunction *>(Asm->MF);
   60   MCSymbol *LSDAEndLabel = Asm->createTempSymbol("GCC_except_table_end");
   61   Asm->OutStreamer->EmitLabel(LSDAEndLabel);
   62   MCContext &OutContext = Asm->OutStreamer->getContext();
   66   Asm->OutStreamer->emitELFSize(LSDALabel, SizeExp);
   81   MachineFunction &MF = *Asm->MF;
lib/CodeGen/AsmPrinter/WinException.cpp
   44   isAArch64 = Asm->TM.getTargetTriple().isAArch64();
   52   auto &OS = *Asm->OutStreamer;
   56       OS.EmitCOFFSafeSEH(Asm->getSymbol(&F));
   68   shouldEmitMoves = Asm->needsSEHMoves() && MF->hasWinCFI();
   70   const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
   94   if (!Asm->MAI->usesWindowsCFI()) {
  109   beginFunclet(MF->front(), Asm->CurrentFnSym);
  115     Asm->OutStreamer->EmitWinCFIFuncletOrFuncEnd();
  144     Asm->OutStreamer->PushSection();
  147     MCSection *XData = Asm->OutStreamer->getAssociatedXDataSection(
  148         Asm->OutStreamer->getCurrentSectionOnly());
  149     Asm->OutStreamer->SwitchSection(XData);
  164     Asm->OutStreamer->PopSection();
  192   const Function &F = Asm->MF->getFunction();
  195     Sym = getMCSymbolForMBB(Asm, &MBB);
  198     Asm->OutStreamer->BeginCOFFSymbolDef(Sym);
  199     Asm->OutStreamer->EmitCOFFSymbolStorageClass(COFF::IMAGE_SYM_CLASS_STATIC);
  200     Asm->OutStreamer->EmitCOFFSymbolType(COFF::IMAGE_SYM_DTYPE_FUNCTION
  202     Asm->OutStreamer->EndCOFFSymbolDef();
  206     Asm->EmitAlignment(std::max(Asm->MF->getAlignment(), MBB.getAlignment()),
  206     Asm->EmitAlignment(std::max(Asm->MF->getAlignment(), MBB.getAlignment()),
  210     Asm->OutStreamer->EmitLabel(Sym);
  215     CurrentFuncletTextSection = Asm->OutStreamer->getCurrentSectionOnly();
  216     Asm->OutStreamer->EmitWinCFIStartProc(Sym);
  220     const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
  227         TLOF.getCFIPersonalitySymbol(PerFn, Asm->TM, MMI);
  235       Asm->OutStreamer->EmitWinEHHandler(PersHandlerSym, true, true);
  242     Asm->OutStreamer->SwitchSection(CurrentFuncletTextSection);
  243     Asm->OutStreamer->EmitWinCFIFuncletOrFuncEnd();
  253   const MachineFunction *MF = Asm->MF;
  264       MCSection *XData = Asm->OutStreamer->getAssociatedXDataSection(
  265           Asm->OutStreamer->getCurrentSectionOnly());
  266       Asm->OutStreamer->SwitchSection(XData);
  270     Asm->OutStreamer->EmitWinEHHandlerData();
  277       MCSymbol *FuncInfoXData = Asm->OutContext.getOrCreateSymbol(
  279       Asm->OutStreamer->EmitValue(create32bitRef(FuncInfoXData), 4);
  290     Asm->OutStreamer->SwitchSection(CurrentFuncletTextSection);
  291     Asm->OutStreamer->EmitWinCFIEndProc();
  300     return MCConstantExpr::create(0, Asm->OutContext);
  304                                  Asm->OutContext);
  309     return MCConstantExpr::create(0, Asm->OutContext);
  310   return create32bitRef(Asm->getSymbol(GV));
  316                                    Asm->OutContext);
  318                                  MCConstantExpr::create(1, Asm->OutContext),
  319                                  Asm->OutContext);
  325       MCSymbolRefExpr::create(OffsetOf, Asm->OutContext),
  326       MCSymbolRefExpr::create(OffsetFrom, Asm->OutContext), Asm->OutContext);
  326       MCSymbolRefExpr::create(OffsetFrom, Asm->OutContext), Asm->OutContext);
  332                                  MCConstantExpr::create(1, Asm->OutContext),
  333                                  Asm->OutContext);
  338   const TargetFrameLowering &TFI = *Asm->MF->getSubtarget().getFrameLowering();
  340   if (Asm->MAI->usesWindowsCFI()) {
  342         TFI.getFrameIndexReferencePreferSP(*Asm->MF, FrameIndex, UnusedReg,
  345            Asm->MF->getSubtarget()
  354   int Offset = TFI.getFrameIndexReference(*Asm->MF, FrameIndex, UnusedReg);
  550   auto &OS = *Asm->OutStreamer;
  551   MCContext &Ctx = Asm->OutContext;
  569     Asm->OutStreamer->EmitAssignment(ParentFrameOffset, MCOffset);
  618   auto &OS = *Asm->OutStreamer;
  619   MCContext &Ctx = Asm->OutContext;
  633       FilterOrFinally = create32bitRef(getMCSymbolForMBB(Asm, Handler));
  660   auto &OS = *Asm->OutStreamer;
  671         Asm->OutContext.getOrCreateSymbol(Twine("$cppxdata$", FuncLinkageName));
  674     FuncInfoXData = Asm->OutContext.getOrCreateLSDASymbol(FuncLinkageName);
  678   if (Asm->MAI->usesWindowsCFI())
  686     UnwindMapXData = Asm->OutContext.getOrCreateSymbol(
  690         Asm->OutContext.getOrCreateSymbol(Twine("$tryMap$", FuncLinkageName));
  693         Asm->OutContext.getOrCreateSymbol(Twine("$ip2state$", FuncLinkageName));
  740   if (Asm->MAI->usesWindowsCFI()) {
  759           getMCSymbolForMBB(Asm, UME.Cleanup.dyn_cast<MachineBasicBlock *>());
  784             Asm->OutContext.getOrCreateSymbol(Twine("$handlerMap$")
  841           FrameAllocOffsetRef = MCConstantExpr::create(Offset, Asm->OutContext);
  843           FrameAllocOffsetRef = MCConstantExpr::create(0, Asm->OutContext);
  847             getMCSymbolForMBB(Asm, HT.Handler.dyn_cast<MachineBasicBlock *>());
  909       StartLabel = Asm->getFunctionBegin();
  915       StartLabel = getMCSymbolForMBB(Asm, &*FuncletStart);
  952     const TargetFrameLowering *TFI = Asm->MF->getSubtarget().getFrameLowering();
  953     Offset = TFI->getNonLocalFrameIndexReference(*Asm->MF, FI);
  956   MCContext &Ctx = Asm->OutContext;
  959   Asm->OutStreamer->EmitAssignment(ParentFrameOffset,
  967   MCStreamer &OS = *Asm->OutStreamer;
  981   MCSymbol *LSDALabel = Asm->OutContext.getOrCreateLSDASymbol(FLinkageName);
 1045         UME.IsFinally ? getMCSymbolForMBB(Asm, Handler) : Handler->getSymbol();
 1093   MCStreamer &OS = *Asm->OutStreamer;
 1095   MCSymbol *FuncBeginSym = Asm->getFunctionBegin();
 1096   MCSymbol *FuncEndSym = Asm->getFunctionEnd();
 1161         EndSymbol = getMCSymbolForMBB(Asm, &*FuncletEnd);
 1276     MCSymbol *BeginSym = getMCSymbolForMBB(Asm, HandlerBlock);