LLVM 20.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::MCContext Class Reference

Context object for machine code objects. More...

#include "llvm/MC/MCContext.h"

Public Types

enum  Environment {
  IsMachO , IsELF , IsGOFF , IsCOFF ,
  IsSPIRV , IsWasm , IsXCOFF , IsDXContainer
}
 
using SymbolTable = StringMap< MCSymbolTableValue, BumpPtrAllocator & >
 
using DiagHandlerTy = std::function< void(const SMDiagnostic &, bool, const SourceMgr &, std::vector< const MDNode * > &)>
 

Public Member Functions

 MCContext (const Triple &TheTriple, const MCAsmInfo *MAI, const MCRegisterInfo *MRI, const MCSubtargetInfo *MSTI, const SourceMgr *Mgr=nullptr, MCTargetOptions const *TargetOpts=nullptr, bool DoAutoReset=true, StringRef Swift5ReflSegmentName={})
 
 MCContext (const MCContext &)=delete
 
MCContextoperator= (const MCContext &)=delete
 
 ~MCContext ()
 
Environment getObjectFileType () const
 
const StringRefgetSwift5ReflectionSegmentName () const
 
const TriplegetTargetTriple () const
 
const SourceMgrgetSourceManager () const
 
void initInlineSourceManager ()
 
SourceMgrgetInlineSourceManager ()
 
std::vector< const MDNode * > & getLocInfos ()
 
void setDiagnosticHandler (DiagHandlerTy DiagHandler)
 
void setObjectFileInfo (const MCObjectFileInfo *Mofi)
 
const MCAsmInfogetAsmInfo () const
 
const MCRegisterInfogetRegisterInfo () const
 
const MCObjectFileInfogetObjectFileInfo () const
 
const MCSubtargetInfogetSubtargetInfo () const
 
const MCTargetOptionsgetTargetOptions () const
 
CodeViewContextgetCVContext ()
 
void setUseNamesOnTempLabels (bool Value)
 
StringRef getSecureLogFile ()
 
raw_fd_ostreamgetSecureLog ()
 
void setSecureLog (std::unique_ptr< raw_fd_ostream > Value)
 
bool getSecureLogUsed ()
 
void setSecureLogUsed (bool Value)
 
void * allocate (unsigned Size, unsigned Align=8)
 
void deallocate (void *Ptr)
 
StringRef allocateString (StringRef s)
 Allocates a copy of the given string on the allocator managed by this context and returns the result.
 
bool hadError ()
 
void diagnose (const SMDiagnostic &SMD)
 
void reportError (SMLoc L, const Twine &Msg)
 
void reportWarning (SMLoc L, const Twine &Msg)
 
MCAsmMacrolookupMacro (StringRef Name)
 
void defineMacro (StringRef Name, MCAsmMacro Macro)
 
void undefineMacro (StringRef Name)
 
MCPseudoProbeTablegetMCPseudoProbeTable ()
 
Module Lifetime Management
void reset ()
 reset - return object to right after construction state to prepare to process a new module
 
McInst Management
MCInstcreateMCInst ()
 Create and return a new MC instruction.
 
template<typename F , typename... Args>
FallocFragment (Args &&...args)
 
Symbol Management
MCSymbolcreateLinkerPrivateTempSymbol ()
 Create a new linker temporary symbol with the specified prefix (Name) or "tmp".
 
MCSymbolcreateLinkerPrivateSymbol (const Twine &Name)
 
MCSymbolcreateTempSymbol ()
 Create a temporary symbol with a unique name.
 
MCSymbolcreateTempSymbol (const Twine &Name, bool AlwaysAddSuffix=true)
 
MCSymbolcreateNamedTempSymbol ()
 Create a temporary symbol with a unique name whose name cannot be omitted in the symbol table.
 
MCSymbolcreateNamedTempSymbol (const Twine &Name)
 
MCSymbolcreateBlockSymbol (const Twine &Name, bool AlwaysEmit=false)
 Get or create a symbol for a basic block.
 
MCSymbolcreateLocalSymbol (StringRef Name)
 Create a local, non-temporary symbol like an ELF mapping symbol.
 
MCSymbolcreateDirectionalLocalSymbol (unsigned LocalLabelVal)
 Create the definition of a directional local symbol for numbered label (used for "1:" definitions).
 
MCSymbolgetDirectionalLocalSymbol (unsigned LocalLabelVal, bool Before)
 Create and return a directional local symbol for numbered label (used for "1b" or 1f" references).
 
MCSymbolgetOrCreateSymbol (const Twine &Name)
 Lookup the symbol inside with the specified Name.
 
MCSymbolgetOrCreateFrameAllocSymbol (const Twine &FuncName, unsigned Idx)
 Gets a symbol that will be defined to the final stack offset of a local variable after codegen.
 
MCSymbolgetOrCreateParentFrameOffsetSymbol (const Twine &FuncName)
 
MCSymbolgetOrCreateLSDASymbol (const Twine &FuncName)
 
MCSymbollookupSymbol (const Twine &Name) const
 Get the symbol for Name, or null.
 
void setSymbolValue (MCStreamer &Streamer, const Twine &Sym, uint64_t Val)
 Set value for a symbol.
 
const SymbolTablegetSymbols () const
 getSymbols - Get a reference for the symbol table for clients that want to, for example, iterate over all symbols.
 
MCSymbolgetInlineAsmLabel (StringRef Name) const
 isInlineAsmLabel - Return true if the name is a label referenced in inline assembly.
 
void registerInlineAsmLabel (MCSymbol *Sym)
 registerInlineAsmLabel - Records that the name is a label referenced in inline assembly.
 
wasm::WasmSignaturecreateWasmSignature ()
 Allocates and returns a new WasmSignature instance (with empty parameter and return type lists).
 
Dwarf Management
StringRef getCompilationDir () const
 Get the compilation directory for DW_AT_comp_dir The compilation directory should be set with setCompilationDir before calling this function.
 
void setCompilationDir (StringRef S)
 Set the compilation directory for DW_AT_comp_dir.
 
void addDebugPrefixMapEntry (const std::string &From, const std::string &To)
 Add an entry to the debug prefix map.
 
void remapDebugPath (SmallVectorImpl< char > &Path)
 Remap one path in-place as per the debug prefix map.
 
void RemapDebugPaths ()
 
const std::string & getMainFileName () const
 Get the main file name for use in error messages and debug info.
 
void setMainFileName (StringRef S)
 Set the main file name and override the default.
 
Expected< unsignedgetDwarfFile (StringRef Directory, StringRef FileName, unsigned FileNumber, std::optional< MD5::MD5Result > Checksum, std::optional< StringRef > Source, unsigned CUID)
 Creates an entry in the dwarf file and directory tables.
 
bool isValidDwarfFileNumber (unsigned FileNumber, unsigned CUID=0)
 isValidDwarfFileNumber - takes a dwarf file number and returns true if it currently is assigned and false otherwise.
 
const std::map< unsigned, MCDwarfLineTable > & getMCDwarfLineTables () const
 
MCDwarfLineTablegetMCDwarfLineTable (unsigned CUID)
 
const MCDwarfLineTablegetMCDwarfLineTable (unsigned CUID) const
 
const SmallVectorImpl< MCDwarfFile > & getMCDwarfFiles (unsigned CUID=0)
 
const SmallVectorImpl< std::string > & getMCDwarfDirs (unsigned CUID=0)
 
unsigned getDwarfCompileUnitID ()
 
void setDwarfCompileUnitID (unsigned CUIndex)
 
void setMCLineTableRootFile (unsigned CUID, StringRef CompilationDir, StringRef Filename, std::optional< MD5::MD5Result > Checksum, std::optional< StringRef > Source)
 Specifies the "root" file and directory of the compilation unit.
 
bool isDwarfMD5UsageConsistent (unsigned CUID) const
 Reports whether MD5 checksum usage is consistent (all-or-none).
 
void setCurrentDwarfLoc (unsigned FileNum, unsigned Line, unsigned Column, unsigned Flags, unsigned Isa, unsigned Discriminator)
 Saves the information from the currently parsed dwarf .loc directive and sets DwarfLocSeen.
 
void clearDwarfLocSeen ()
 
bool getDwarfLocSeen ()
 
const MCDwarfLocgetCurrentDwarfLoc ()
 
bool getGenDwarfForAssembly ()
 
void setGenDwarfForAssembly (bool Value)
 
unsigned getGenDwarfFileNumber ()
 
EmitDwarfUnwindType emitDwarfUnwindInfo () const
 
bool emitCompactUnwindNonCanonical () const
 
void setGenDwarfFileNumber (unsigned FileNumber)
 
void setGenDwarfRootFile (StringRef FileName, StringRef Buffer)
 Specifies information about the "root file" for assembler clients (e.g., llvm-mc).
 
const SetVector< MCSection * > & getGenDwarfSectionSyms ()
 
bool addGenDwarfSection (MCSection *Sec)
 
void finalizeDwarfSections (MCStreamer &MCOS)
 Remove empty sections from SectionsForRanges, to avoid generating useless debug info for them.
 
const std::vector< MCGenDwarfLabelEntry > & getMCGenDwarfLabelEntries () const
 
void addMCGenDwarfLabelEntry (const MCGenDwarfLabelEntry &E)
 
void setDwarfDebugFlags (StringRef S)
 
StringRef getDwarfDebugFlags ()
 
void setDwarfDebugProducer (StringRef S)
 
StringRef getDwarfDebugProducer ()
 
void setDwarfFormat (dwarf::DwarfFormat f)
 
dwarf::DwarfFormat getDwarfFormat () const
 
void setDwarfVersion (uint16_t v)
 
uint16_t getDwarfVersion () const
 

Section Management

enum  : unsigned { GenericSectionID = ~0U }
 
MCSectionMachOgetMachOSection (StringRef Segment, StringRef Section, unsigned TypeAndAttributes, unsigned Reserved2, SectionKind K, const char *BeginSymName=nullptr)
 Return the MCSection for the specified mach-o section.
 
MCSectionMachOgetMachOSection (StringRef Segment, StringRef Section, unsigned TypeAndAttributes, SectionKind K, const char *BeginSymName=nullptr)
 
MCSectionELFgetELFSection (const Twine &Section, unsigned Type, unsigned Flags)
 
MCSectionELFgetELFSection (const Twine &Section, unsigned Type, unsigned Flags, unsigned EntrySize)
 
MCSectionELFgetELFSection (const Twine &Section, unsigned Type, unsigned Flags, unsigned EntrySize, const Twine &Group, bool IsComdat)
 
MCSectionELFgetELFSection (const Twine &Section, unsigned Type, unsigned Flags, unsigned EntrySize, const Twine &Group, bool IsComdat, unsigned UniqueID, const MCSymbolELF *LinkedToSym)
 
MCSectionELFgetELFSection (const Twine &Section, unsigned Type, unsigned Flags, unsigned EntrySize, const MCSymbolELF *Group, bool IsComdat, unsigned UniqueID, const MCSymbolELF *LinkedToSym)
 
MCSectionELFgetELFNamedSection (const Twine &Prefix, const Twine &Suffix, unsigned Type, unsigned Flags, unsigned EntrySize=0)
 Get a section with the provided group identifier.
 
MCSectionELFcreateELFRelSection (const Twine &Name, unsigned Type, unsigned Flags, unsigned EntrySize, const MCSymbolELF *Group, const MCSectionELF *RelInfoSection)
 
MCSectionELFcreateELFGroupSection (const MCSymbolELF *Group, bool IsComdat)
 
void recordELFMergeableSectionInfo (StringRef SectionName, unsigned Flags, unsigned UniqueID, unsigned EntrySize)
 
bool isELFImplicitMergeableSectionNamePrefix (StringRef Name)
 
bool isELFGenericMergeableSection (StringRef Name)
 
std::optional< unsignedgetELFUniqueIDForEntsize (StringRef SectionName, unsigned Flags, unsigned EntrySize)
 Return the unique ID of the section with the given name, flags and entry size, if it exists.
 
MCSectionGOFFgetGOFFSection (StringRef Section, SectionKind Kind, MCSection *Parent, uint32_t Subsection=0)
 
MCSectionCOFFgetCOFFSection (StringRef Section, unsigned Characteristics, StringRef COMDATSymName, int Selection, unsigned UniqueID=GenericSectionID)
 
MCSectionCOFFgetCOFFSection (StringRef Section, unsigned Characteristics)
 
MCSectionCOFFgetAssociativeCOFFSection (MCSectionCOFF *Sec, const MCSymbol *KeySym, unsigned UniqueID=GenericSectionID)
 Gets or creates a section equivalent to Sec that is associated with the section containing KeySym.
 
MCSectionSPIRVgetSPIRVSection ()
 
MCSectionWasmgetWasmSection (const Twine &Section, SectionKind K, unsigned Flags=0)
 
MCSectionWasmgetWasmSection (const Twine &Section, SectionKind K, unsigned Flags, const Twine &Group, unsigned UniqueID)
 
MCSectionWasmgetWasmSection (const Twine &Section, SectionKind K, unsigned Flags, const MCSymbolWasm *Group, unsigned UniqueID)
 
MCSectionDXContainergetDXContainerSection (StringRef Section, SectionKind K)
 Get the section for the provided Section name.
 
bool hasXCOFFSection (StringRef Section, XCOFF::CsectProperties CsectProp) const
 
MCSectionXCOFFgetXCOFFSection (StringRef Section, SectionKind K, std::optional< XCOFF::CsectProperties > CsectProp=std::nullopt, bool MultiSymbolsAllowed=false, std::optional< XCOFF::DwarfSectionSubtypeFlags > DwarfSubtypeFlags=std::nullopt)
 
MCSubtargetInfogetSubtargetCopy (const MCSubtargetInfo &STI)
 
uint8_t getBBAddrMapVersion () const
 

Detailed Description

Context object for machine code objects.

This class owns all of the sections that it creates.

Definition at line 83 of file MCContext.h.

Member Typedef Documentation

◆ DiagHandlerTy

using llvm::MCContext::DiagHandlerTy = std::function<void(const SMDiagnostic &, bool, const SourceMgr &, std::vector<const MDNode *> &)>

Definition at line 86 of file MCContext.h.

◆ SymbolTable

Definition at line 85 of file MCContext.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : unsigned
Enumerator
GenericSectionID 

Pass this value as the UniqueID during section creation to get the generic section with the given name and characteristics.

The usual sections such as .text use this ID.

Definition at line 530 of file MCContext.h.

◆ Environment

Enumerator
IsMachO 
IsELF 
IsGOFF 
IsCOFF 
IsSPIRV 
IsWasm 
IsXCOFF 
IsDXContainer 

Definition at line 89 of file MCContext.h.

Constructor & Destructor Documentation

◆ MCContext() [1/2]

MCContext::MCContext ( const Triple TheTriple,
const MCAsmInfo MAI,
const MCRegisterInfo MRI,
const MCSubtargetInfo MSTI,
const SourceMgr Mgr = nullptr,
MCTargetOptions const TargetOpts = nullptr,
bool  DoAutoReset = true,
StringRef  Swift5ReflSegmentName = {} 
)
explicit

◆ MCContext() [2/2]

llvm::MCContext::MCContext ( const MCContext )
delete

◆ ~MCContext()

MCContext::~MCContext ( )

Definition at line 118 of file MCContext.cpp.

References reset().

Member Function Documentation

◆ addDebugPrefixMapEntry()

void MCContext::addDebugPrefixMapEntry ( const std::string &  From,
const std::string &  To 
)

Add an entry to the debug prefix map.

Definition at line 896 of file MCContext.cpp.

References llvm::SmallVectorImpl< T >::emplace_back(), and From.

◆ addGenDwarfSection()

bool llvm::MCContext::addGenDwarfSection ( MCSection Sec)
inline

Definition at line 778 of file MCContext.h.

References llvm::SetVector< T, Vector, Set, N >::insert().

◆ addMCGenDwarfLabelEntry()

void llvm::MCContext::addMCGenDwarfLabelEntry ( const MCGenDwarfLabelEntry E)
inline

Definition at line 788 of file MCContext.h.

References E.

Referenced by llvm::MCGenDwarfLabelEntry::Make().

◆ allocate()

void * llvm::MCContext::allocate ( unsigned  Size,
unsigned  Align = 8 
)
inline

Definition at line 816 of file MCContext.h.

References Allocator, and Size.

◆ allocateString()

StringRef llvm::MCContext::allocateString ( StringRef  s)
inline

Allocates a copy of the given string on the allocator managed by this context and returns the result.

Definition at line 824 of file MCContext.h.

References Allocator, and llvm::StringSaver::save().

Referenced by llvm::WebAssemblyAsmPrinter::emitDecls().

◆ allocFragment()

template<typename F , typename... Args>
F * llvm::MCContext::allocFragment ( Args &&...  args)
inline

◆ clearDwarfLocSeen()

void llvm::MCContext::clearDwarfLocSeen ( )
inline

◆ createBlockSymbol()

MCSymbol * MCContext::createBlockSymbol ( const Twine Name,
bool  AlwaysEmit = false 
)

Get or create a symbol for a basic block.

For non-always-emit symbols, this behaves like createTempSymbol, except that it uses the PrivateLabelPrefix instead of the PrivateGlobalPrefix. When AlwaysEmit is true, behaves like getOrCreateSymbol, prefixed with PrivateLabelPrefix.

Definition at line 324 of file MCContext.cpp.

References getOrCreateSymbol(), llvm::MCAsmInfo::getPrivateLabelPrefix(), and Name.

Referenced by llvm::MachineBasicBlock::getEndSymbol(), and llvm::MachineBasicBlock::getSymbol().

◆ createDirectionalLocalSymbol()

MCSymbol * MCContext::createDirectionalLocalSymbol ( unsigned  LocalLabelVal)

Create the definition of a directional local symbol for numbered label (used for "1:" definitions).

Definition at line 378 of file MCContext.cpp.

◆ createELFGroupSection()

MCSectionELF * MCContext::createELFGroupSection ( const MCSymbolELF Group,
bool  IsComdat 
)

Definition at line 629 of file MCContext.cpp.

References llvm::MCSection::NonUniqueID, and llvm::ELF::SHT_GROUP.

◆ createELFRelSection()

MCSectionELF * MCContext::createELFRelSection ( const Twine Name,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize,
const MCSymbolELF Group,
const MCSectionELF RelInfoSection 
)

◆ createLinkerPrivateSymbol()

MCSymbol * MCContext::createLinkerPrivateSymbol ( const Twine Name)

◆ createLinkerPrivateTempSymbol()

MCSymbol * MCContext::createLinkerPrivateTempSymbol ( )

Create a new linker temporary symbol with the specified prefix (Name) or "tmp".

This creates a "l"-prefixed symbol for Mach-O and is identical to createNamedTempSymbol for other object file formats.

Definition at line 335 of file MCContext.cpp.

References createLinkerPrivateSymbol().

Referenced by llvm::AsmPrinter::emitKCFITrapEntry().

◆ createLocalSymbol()

MCSymbol * MCContext::createLocalSymbol ( StringRef  Name)

Create a local, non-temporary symbol like an ELF mapping symbol.

Calling the function with the same name will generate new, unique instances.

Definition at line 351 of file MCContext.cpp.

References Name.

◆ createMCInst()

MCInst * MCContext::createMCInst ( )

Create and return a new MC instruction.

Definition at line 194 of file MCContext.cpp.

Referenced by getCompoundInsn(), and llvm::HexagonLowerToMC().

◆ createNamedTempSymbol() [1/2]

MCSymbol * MCContext::createNamedTempSymbol ( )

Create a temporary symbol with a unique name whose name cannot be omitted in the symbol table.

This is rarely used.

Definition at line 347 of file MCContext.cpp.

References createNamedTempSymbol().

Referenced by createNamedTempSymbol(), llvm::AddrLabelMap::getAddrLabelSymbolToEmit(), and llvm::LoongArchAsmBackend::shouldInsertFixupForCodeAlign().

◆ createNamedTempSymbol() [2/2]

MCSymbol * MCContext::createNamedTempSymbol ( const Twine Name)

Definition at line 319 of file MCContext.cpp.

References llvm::MCAsmInfo::getPrivateGlobalPrefix(), and Name.

◆ createTempSymbol() [1/2]

MCSymbol * MCContext::createTempSymbol ( )

Create a temporary symbol with a unique name.

The name will be omitted in the symbol table if UseNamesOnTempLabels is false (default except MCAsmStreamer). The overload without Name uses an unspecified name.

Definition at line 345 of file MCContext.cpp.

References createTempSymbol().

Referenced by llvm::ConstantPool::addEntry(), llvm::MachineFunction::addLandingPad(), ARM64EmitUnwindInfoForSegment(), ARMEmitUnwindInfo(), llvm::DebugHandlerBase::beginInstruction(), createTempSymbol(), llvm::AsmPrinter::createTempSymbol(), llvm::MCDwarfFrameEmitter::Emit(), llvm::MCGenDwarfInfo::Emit(), llvm::MCDwarfLineTableHeader::Emit(), llvm::MCStreamer::emitAbsoluteSymbolDiff(), llvm::MipsELFStreamer::emitCFIEndProcImpl(), llvm::MipsELFStreamer::emitCFILabel(), llvm::MipsELFStreamer::emitCFIStartProcImpl(), llvm::MCObjectStreamer::emitCVLocDirective(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), emitDirectiveRelocJalr(), llvm::MCStreamer::emitDwarfUnitLength(), llvm::EHStreamer::emitExceptionTable(), llvm::CodeViewContext::emitFileChecksums(), llvm::SystemZAsmPrinter::emitFunctionEntryLabel(), EmitGenDwarfInfo(), emitGenDwarfRanges(), llvm::ARMAsmPrinter::emitInstruction(), llvm::SystemZAsmPrinter::emitInstruction(), llvm::X86AsmPrinter::emitInstruction(), llvm::X86AsmPrinter::emitKCFITypeId(), llvm::CodeViewContext::emitLineTableForFunction(), llvm::MCStreamer::emitLineTableLabel(), llvm::mcdwarf::emitListsTableHeaderStart(), llvm::ARMAsmPrinter::emitMachineConstantPoolValue(), llvm::CSKYAsmPrinter::emitMachineConstantPoolValue(), EmitNop(), llvm::AsmPrinter::emitPCSections(), llvm::AsmPrinter::emitPCSectionsLabel(), llvm::AArch64FrameLowering::emitPrologue(), llvm::MCStreamer::emitPseudoProbe(), llvm::HexagonAsmPrinter::EmitSled(), llvm::LoongArchAsmPrinter::emitSled(), llvm::CodeViewContext::emitStringTable(), EmitUnwindInfo(), llvm::AsmPrinter::emitXRayTable(), llvm::DebugHandlerBase::endInstruction(), forceExpAbs(), llvm::AddrLabelMap::getAddrLabelSymbolToEmit(), llvm::MCSection::getEndSymbol(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), getMachOSection(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::MCDwarfLineEntry::make(), and llvm::MCGenDwarfLabelEntry::Make().

◆ createTempSymbol() [2/2]

MCSymbol * MCContext::createTempSymbol ( const Twine Name,
bool  AlwaysAddSuffix = true 
)

Definition at line 312 of file MCContext.cpp.

References llvm::MCAsmInfo::getPrivateGlobalPrefix(), and Name.

◆ createWasmSignature()

wasm::WasmSignature * MCContext::createWasmSignature ( )

Allocates and returns a new WasmSignature instance (with empty parameter and return type lists).

Definition at line 428 of file MCContext.cpp.

Referenced by llvm::WebAssemblyAsmPrinter::getOrCreateWasmSymbol(), and llvm::signatureFromMVTs().

◆ deallocate()

void llvm::MCContext::deallocate ( void *  Ptr)
inline

Definition at line 820 of file MCContext.h.

◆ defineMacro()

void llvm::MCContext::defineMacro ( StringRef  Name,
MCAsmMacro  Macro 
)
inline

Definition at line 838 of file MCContext.h.

References llvm::Macro, and Name.

◆ diagnose()

void MCContext::diagnose ( const SMDiagnostic SMD)

Definition at line 1027 of file MCContext.cpp.

References assert(), and llvm_unreachable.

◆ emitCompactUnwindNonCanonical()

bool MCContext::emitCompactUnwindNonCanonical ( ) const

◆ emitDwarfUnwindInfo()

EmitDwarfUnwindType MCContext::emitDwarfUnwindInfo ( ) const

Definition at line 936 of file MCContext.cpp.

References llvm::Default.

◆ finalizeDwarfSections()

void MCContext::finalizeDwarfSections ( MCStreamer MCOS)

Remove empty sections from SectionsForRanges, to avoid generating useless debug info for them.

Definition at line 1012 of file MCContext.cpp.

References llvm::MCStreamer::mayHaveInstructions().

Referenced by llvm::MCGenDwarfInfo::Emit().

◆ getAsmInfo()

const MCAsmInfo * llvm::MCContext::getAsmInfo ( ) const
inline

◆ getAssociativeCOFFSection()

MCSectionCOFF * MCContext::getAssociativeCOFFSection ( MCSectionCOFF Sec,
const MCSymbol KeySym,
unsigned  UniqueID = GenericSectionID 
)

Gets or creates a section equivalent to Sec that is associated with the section containing KeySym.

For example, to create a debug info section associated with an inline function, pass the normal debug info section as Sec and the function symbol as KeySym.

Definition at line 733 of file MCContext.cpp.

References Characteristics, GenericSectionID, llvm::MCSectionCOFF::getCharacteristics(), getCOFFSection(), llvm::MCSection::getName(), llvm::MCSymbol::getName(), llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, and llvm::COFF::IMAGE_SCN_LNK_COMDAT.

Referenced by getCOFFStaticStructorSection(), and getWinCFISection().

◆ getBBAddrMapVersion()

uint8_t llvm::MCContext::getBBAddrMapVersion ( ) const
inline

Definition at line 657 of file MCContext.h.

◆ getCOFFSection() [1/2]

MCSectionCOFF * MCContext::getCOFFSection ( StringRef  Section,
unsigned  Characteristics 
)

Definition at line 728 of file MCContext.cpp.

References Characteristics, GenericSectionID, and getCOFFSection().

◆ getCOFFSection() [2/2]

MCSectionCOFF * MCContext::getCOFFSection ( StringRef  Section,
unsigned  Characteristics,
StringRef  COMDATSymName,
int  Selection,
unsigned  UniqueID = GenericSectionID 
)

◆ getCompilationDir()

StringRef llvm::MCContext::getCompilationDir ( ) const
inline

Get the compilation directory for DW_AT_comp_dir The compilation directory should be set with setCompilationDir before calling this function.

If it is unset, an empty string will be returned.

Definition at line 667 of file MCContext.h.

Referenced by EmitGenDwarfAbbrev(), EmitGenDwarfInfo(), and setGenDwarfRootFile().

◆ getCurrentDwarfLoc()

const MCDwarfLoc & llvm::MCContext::getCurrentDwarfLoc ( )
inline

◆ getCVContext()

CodeViewContext & MCContext::getCVContext ( )

◆ getDirectionalLocalSymbol()

MCSymbol * MCContext::getDirectionalLocalSymbol ( unsigned  LocalLabelVal,
bool  Before 
)

Create and return a directional local symbol for numbered label (used for "1b" or 1f" references).

Definition at line 383 of file MCContext.cpp.

References Before.

◆ getDwarfCompileUnitID()

unsigned llvm::MCContext::getDwarfCompileUnitID ( )
inline

Definition at line 720 of file MCContext.h.

Referenced by llvm::MCDwarfLineEntry::make().

◆ getDwarfDebugFlags()

StringRef llvm::MCContext::getDwarfDebugFlags ( )
inline

Definition at line 793 of file MCContext.h.

Referenced by EmitGenDwarfAbbrev(), and EmitGenDwarfInfo().

◆ getDwarfDebugProducer()

StringRef llvm::MCContext::getDwarfDebugProducer ( )
inline

Definition at line 796 of file MCContext.h.

Referenced by EmitGenDwarfInfo().

◆ getDwarfFile()

Expected< unsigned > MCContext::getDwarfFile ( StringRef  Directory,
StringRef  FileName,
unsigned  FileNumber,
std::optional< MD5::MD5Result Checksum,
std::optional< StringRef Source,
unsigned  CUID 
)

Creates an entry in the dwarf file and directory tables.

getDwarfFile - takes a file name and number to place in the dwarf file and directory tables.

If the file number has already been allocated it is an error and zero is returned and the client reports the error, else the allocated file number is returned. The file numbers may be in any order.

Definition at line 989 of file MCContext.cpp.

References llvm::MCDwarfLineTable::tryGetFile().

Referenced by llvm::MCStreamer::tryEmitDwarfFileDirective().

◆ getDwarfFormat()

dwarf::DwarfFormat llvm::MCContext::getDwarfFormat ( ) const
inline

◆ getDwarfLocSeen()

bool llvm::MCContext::getDwarfLocSeen ( )
inline

Definition at line 757 of file MCContext.h.

Referenced by llvm::MCDwarfLineEntry::make().

◆ getDwarfVersion()

uint16_t llvm::MCContext::getDwarfVersion ( ) const
inline

◆ getDXContainerSection()

MCSectionDXContainer * MCContext::getDXContainerSection ( StringRef  Section,
SectionKind  K 
)

Get the section for the provided Section name.

Definition at line 872 of file MCContext.cpp.

References Name.

Referenced by DXILTargetObjectFile::getExplicitSectionGlobal().

◆ getELFNamedSection()

MCSectionELF * MCContext::getELFNamedSection ( const Twine Prefix,
const Twine Suffix,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize = 0 
)

Get a section with the provided group identifier.

This section is named by concatenating Prefix with '.' then Suffix. The Type describes the type of the section and Flags are used to further configure this named section.

Definition at line 551 of file MCContext.cpp.

References getELFSection().

Referenced by llvm::TargetLoweringObjectFileELF::emitPersonalityValue().

◆ getELFSection() [1/5]

MCSectionELF * llvm::MCContext::getELFSection ( const Twine Section,
unsigned  Type,
unsigned  Flags 
)
inline

Definition at line 551 of file MCContext.h.

References getELFSection().

Referenced by llvm::AsmPrinter::doFinalization(), llvm::AMDGPUAsmPrinter::doFinalization(), llvm::MCELFStreamer::emitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MCELFStreamer::emitIdent(), llvm::LoongArchAsmPrinter::emitJumpTableInfo(), llvm::XtensaTargetELFStreamer::emitLiteral(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsRegInfoRecord::EmitMipsOptionRecord(), llvm::AArch64TargetStreamer::emitNoteSection(), llvm::AsmPrinter::emitPatchableFunctionEntries(), llvm::MipsAsmPrinter::emitStartOfAsmFile(), llvm::X86AsmPrinter::emitStartOfAsmFile(), llvm::AsmPrinter::emitXRayTable(), llvm::MCObjectFileInfo::getBBAddrMapSection(), getELFNamedSection(), getELFSection(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), llvm::MCObjectFileInfo::getKCFITrapSection(), llvm::MCObjectFileInfo::getPCSection(), llvm::MCObjectFileInfo::getPseudoProbeDescSection(), llvm::MCObjectFileInfo::getPseudoProbeSection(), llvm::TargetLoweringObjectFileELF::getSectionForCommandLines(), llvm::TargetLoweringObjectFileELF::getSectionForLSDA(), llvm::TargetLoweringObjectFileELF::getSectionForMachineBasicBlock(), llvm::MCObjectFileInfo::getStackSizesSection(), getStaticStructorSection(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::ARMElfTargetObjectFile::Initialize(), llvm::AVRTargetObjectFile::Initialize(), llvm::HexagonTargetObjectFile::Initialize(), llvm::LanaiTargetObjectFile::Initialize(), llvm::M68kELFTargetObjectFile::Initialize(), llvm::MipsTargetObjectFile::Initialize(), llvm::RISCVELFTargetObjectFile::Initialize(), llvm::XCoreTargetObjectFile::Initialize(), llvm::TargetLoweringObjectFileELF::InitializeELF(), llvm::MSP430TargetELFStreamer::MSP430TargetELFStreamer(), llvm::R600AsmPrinter::runOnMachineFunction(), selectELFSectionForGlobal(), selectExplicitSectionGlobal(), llvm::RISCVELFTargetObjectFile::SelectSectionForGlobal(), smallData(), and llvm::XtensaTargetELFStreamer::startLiteralSection().

◆ getELFSection() [2/5]

MCSectionELF * llvm::MCContext::getELFSection ( const Twine Section,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize 
)
inline

Definition at line 556 of file MCContext.h.

References getELFSection(), and llvm::MCSection::NonUniqueID.

◆ getELFSection() [3/5]

MCSectionELF * MCContext::getELFSection ( const Twine Section,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize,
const MCSymbolELF Group,
bool  IsComdat,
unsigned  UniqueID,
const MCSymbolELF LinkedToSym 
)

◆ getELFSection() [4/5]

MCSectionELF * llvm::MCContext::getELFSection ( const Twine Section,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize,
const Twine Group,
bool  IsComdat 
)
inline

Definition at line 562 of file MCContext.h.

References getELFSection(), and llvm::MCSection::NonUniqueID.

◆ getELFSection() [5/5]

MCSectionELF * MCContext::getELFSection ( const Twine Section,
unsigned  Type,
unsigned  Flags,
unsigned  EntrySize,
const Twine Group,
bool  IsComdat,
unsigned  UniqueID,
const MCSymbolELF LinkedToSym 
)

◆ getELFUniqueIDForEntsize()

std::optional< unsigned > MCContext::getELFUniqueIDForEntsize ( StringRef  SectionName,
unsigned  Flags,
unsigned  EntrySize 
)

Return the unique ID of the section with the given name, flags and entry size, if it exists.

Definition at line 667 of file MCContext.cpp.

References I.

Referenced by calcUniqueIDUpdateFlagsAndSize().

◆ getGenDwarfFileNumber()

unsigned llvm::MCContext::getGenDwarfFileNumber ( )
inline

Definition at line 762 of file MCContext.h.

Referenced by llvm::MCGenDwarfLabelEntry::Make().

◆ getGenDwarfForAssembly()

bool llvm::MCContext::getGenDwarfForAssembly ( )
inline

Definition at line 760 of file MCContext.h.

◆ getGenDwarfSectionSyms()

const SetVector< MCSection * > & llvm::MCContext::getGenDwarfSectionSyms ( )
inline

◆ getGOFFSection()

MCSectionGOFF * MCContext::getGOFFSection ( StringRef  Section,
SectionKind  Kind,
MCSection Parent,
uint32_t  Subsection = 0 
)

◆ getInlineAsmLabel()

MCSymbol * llvm::MCContext::getInlineAsmLabel ( StringRef  Name) const
inline

isInlineAsmLabel - Return true if the name is a label referenced in inline assembly.

Definition at line 513 of file MCContext.h.

References llvm::StringMap< ValueTy, AllocatorTy >::lookup(), and Name.

◆ getInlineSourceManager()

SourceMgr * llvm::MCContext::getInlineSourceManager ( )
inline

Definition at line 404 of file MCContext.h.

◆ getLocInfos()

std::vector< const MDNode * > & llvm::MCContext::getLocInfos ( )
inline

Definition at line 405 of file MCContext.h.

◆ getMachOSection() [1/2]

MCSectionMachO * llvm::MCContext::getMachOSection ( StringRef  Segment,
StringRef  Section,
unsigned  TypeAndAttributes,
SectionKind  K,
const char BeginSymName = nullptr 
)
inline

Definition at line 544 of file MCContext.h.

References getMachOSection().

◆ getMachOSection() [2/2]

MCSectionMachO * MCContext::getMachOSection ( StringRef  Segment,
StringRef  Section,
unsigned  TypeAndAttributes,
unsigned  Reserved2,
SectionKind  K,
const char BeginSymName = nullptr 
)

◆ getMainFileName()

const std::string & llvm::MCContext::getMainFileName ( ) const
inline

Get the main file name for use in error messages and debug info.

This can be set to ensure we've got the correct file name after preprocessing or for -save-temps.

Definition at line 684 of file MCContext.h.

Referenced by setGenDwarfRootFile().

◆ getMCDwarfDirs()

const SmallVectorImpl< std::string > & llvm::MCContext::getMCDwarfDirs ( unsigned  CUID = 0)
inline

Definition at line 716 of file MCContext.h.

References llvm::MCDwarfLineTable::getMCDwarfDirs(), and getMCDwarfLineTable().

Referenced by EmitGenDwarfInfo().

◆ getMCDwarfFiles()

const SmallVectorImpl< MCDwarfFile > & llvm::MCContext::getMCDwarfFiles ( unsigned  CUID = 0)
inline

Definition at line 712 of file MCContext.h.

References llvm::MCDwarfLineTable::getMCDwarfFiles(), and getMCDwarfLineTable().

Referenced by EmitGenDwarfInfo().

◆ getMCDwarfLineTable() [1/2]

MCDwarfLineTable & llvm::MCContext::getMCDwarfLineTable ( unsigned  CUID)
inline

◆ getMCDwarfLineTable() [2/2]

const MCDwarfLineTable & llvm::MCContext::getMCDwarfLineTable ( unsigned  CUID) const
inline

Definition at line 706 of file MCContext.h.

References assert(), and I.

◆ getMCDwarfLineTables()

const std::map< unsigned, MCDwarfLineTable > & llvm::MCContext::getMCDwarfLineTables ( ) const
inline

Definition at line 698 of file MCContext.h.

Referenced by llvm::MCDwarfLineTable::emit().

◆ getMCGenDwarfLabelEntries()

const std::vector< MCGenDwarfLabelEntry > & llvm::MCContext::getMCGenDwarfLabelEntries ( ) const
inline

Definition at line 784 of file MCContext.h.

Referenced by EmitGenDwarfInfo().

◆ getMCPseudoProbeTable()

MCPseudoProbeTable & llvm::MCContext::getMCPseudoProbeTable ( )
inline

◆ getObjectFileInfo()

const MCObjectFileInfo * llvm::MCContext::getObjectFileInfo ( ) const
inline

◆ getObjectFileType()

Environment llvm::MCContext::getObjectFileType ( ) const
inline

◆ getOrCreateFrameAllocSymbol()

MCSymbol * MCContext::getOrCreateFrameAllocSymbol ( const Twine FuncName,
unsigned  Idx 
)

Gets a symbol that will be defined to the final stack offset of a local variable after codegen.

Parameters
Idx- The index of a local variable passed to @llvm.localescape.

Definition at line 235 of file MCContext.cpp.

References getOrCreateSymbol(), llvm::MCAsmInfo::getPrivateGlobalPrefix(), and Idx.

◆ getOrCreateLSDASymbol()

MCSymbol * MCContext::getOrCreateLSDASymbol ( const Twine FuncName)

◆ getOrCreateParentFrameOffsetSymbol()

MCSymbol * MCContext::getOrCreateParentFrameOffsetSymbol ( const Twine FuncName)

Definition at line 241 of file MCContext.cpp.

References getOrCreateSymbol(), and llvm::MCAsmInfo::getPrivateGlobalPrefix().

Referenced by recoverFramePointer().

◆ getOrCreateSymbol()

MCSymbol * MCContext::getOrCreateSymbol ( const Twine Name)

Lookup the symbol inside with the specified Name.

If it exists, return it. If not, create a forward reference and return it.

Parameters
Name- The symbol name, which must be unique across all symbols.

Definition at line 212 of file MCContext.cpp.

References assert(), llvm::StringRef::empty(), llvm::MCAsmInfo::getPrivateGlobalPrefix(), Name, and llvm::StringRef::starts_with().

Referenced by llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), llvm::ModuloScheduleTestAnnotater::annotate(), llvm::MCSymbolRefExpr::create(), createBlockSymbol(), llvm::AVRAsmPrinter::doFinalization(), EmitCamlGlobal(), llvm::MCStreamer::emitCFILabelDirective(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::X86AsmPrinter::emitEndOfAsmFile(), llvm::EHStreamer::emitExceptionTable(), llvm::ARMAsmPrinter::emitFunctionEntryLabel(), llvm::AsmPrinter::emitGlobalVariable(), llvm::X86AsmPrinter::emitKCFITypeId(), llvm::CSKYAsmPrinter::emitMachineConstantPoolValue(), llvm::XtensaAsmPrinter::emitMachineConstantPoolValue(), llvm::AsmPrinter::emitSpecialLLVMGlobal(), llvm::AVRAsmPrinter::emitStartOfAsmFile(), llvm::X86AsmPrinter::emitStartOfAsmFile(), llvm::AVRAsmPrinter::emitXXStructor(), llvm::MCDwarfLineTable::endCurrentSeqAndEmitLineStreamLabel(), llvm::RecordStreamer::flushSymverDirectives(), getAuthPtrSlotSymbolHelper(), getBFLabel(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), getCOFFSection(), llvm::LanaiMCInstLower::GetConstantPoolIndexSymbol(), llvm::MSP430MCInstLower::GetConstantPoolIndexSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::ARMAsmPrinter::GetCPISymbol(), llvm::MCStreamer::getDwarfLineTableSymbol(), llvm::MachineBasicBlock::getEHCatchretSymbol(), llvm::TargetLoweringObjectFileXCOFF::getEHInfoTableSymbol(), getELFSection(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::TargetLoweringObjectFileXCOFF::getFunctionEntryPointSymbol(), llvm::NVPTXAsmPrinter::getFunctionFrameSymbol(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), getGlobalOffsetTable(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), llvm::MachineFunction::getJTISymbol(), llvm::AsmPrinter::GetJTSetSymbol(), llvm::LanaiMCInstLower::GetJumpTableSymbol(), llvm::MSP430MCInstLower::GetJumpTableSymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), llvm::MCResourceInfo::getMaxAGPRSymbol(), llvm::MCResourceInfo::getMaxSGPRSymbol(), llvm::MCResourceInfo::getMaxVGPRSymbol(), getMCSymbolForMBB(), getOrCreateFrameAllocSymbol(), llvm::WebAssembly::getOrCreateFuncrefCallTableSymbol(), llvm::WebAssembly::getOrCreateFunctionTableSymbol(), getOrCreateLSDASymbol(), getOrCreateParentFrameOffsetSymbol(), llvm::MachineFunction::getPICBaseSymbol(), getPICLabel(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::TargetMachine::getSymbol(), llvm::MCResourceInfo::getSymbol(), llvm::M68kMCInstLower::GetSymbolFromOperand(), GetSymbolFromOperand(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), getTLSGetOffset(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), getWasmSection(), getXCOFFSection(), llvm::FastISel::lowerCallTo(), llvm::VETargetLowering::LowerCustomJumpTableEntry(), AMDGPUMCInstLower::lowerOperand(), llvm::MCParserUtils::parseAssignmentExpression(), llvm::MCAsmParserExtension::parseDirectiveCGProfile(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::FastISel::CallLoweringInfo::setCallee(), setSymbolValue(), smallData(), llvm::AMDGPUSymbolizer::tryAddingSymbolicOperand(), llvm::MCExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand().

◆ getRegisterInfo()

const MCRegisterInfo * llvm::MCContext::getRegisterInfo ( ) const
inline

Definition at line 414 of file MCContext.h.

References MRI.

Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), buildDefCFAReg(), llvm::HexagonMCInstrInfo::canonicalizePacket(), llvm::createAMDGPUMCCodeEmitter(), llvm::createBPFbeMCCodeEmitter(), llvm::createBPFMCCodeEmitter(), llvm::createR600MCCodeEmitter(), llvm::MSP430FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMovesFullCFA(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::MipsELFStreamer::emitInstruction(), llvm::XtensaFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), encodeSEHRegNum(), llvm::PPCMCCodeEmitter::get_crbitm_encoding(), llvm::CSKYMCCodeEmitter::getMachineOpValue(), llvm::MipsMCCodeEmitter::getMachineOpValue(), llvm::PPCMCCodeEmitter::getMachineOpValue(), llvm::HexagonMCCodeEmitter::getMachineOpValue(), llvm::AMDGPUDisassembler::getRegClassName(), llvm::MipsMCCodeEmitter::getRegisterListOpValue(), llvm::CSKYMCCodeEmitter::getRegisterSeqOpValue(), llvm::CSKYMCCodeEmitter::getRegSeqImmOpValue(), llvm::PPCMCCodeEmitter::getTLSRegEncoding(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::MipsRegInfoRecord::MipsRegInfoRecord(), and llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand().

◆ getSecureLog()

raw_fd_ostream * llvm::MCContext::getSecureLog ( )
inline

Definition at line 807 of file MCContext.h.

◆ getSecureLogFile()

StringRef llvm::MCContext::getSecureLogFile ( )
inline

Definition at line 806 of file MCContext.h.

◆ getSecureLogUsed()

bool llvm::MCContext::getSecureLogUsed ( )
inline

Definition at line 813 of file MCContext.h.

◆ getSourceManager()

const SourceMgr * llvm::MCContext::getSourceManager ( ) const
inline

◆ getSPIRVSection()

MCSectionSPIRV * MCContext::getSPIRVSection ( )

Definition at line 865 of file MCContext.cpp.

◆ getSubtargetCopy()

MCSubtargetInfo & MCContext::getSubtargetCopy ( const MCSubtargetInfo STI)

Definition at line 892 of file MCContext.cpp.

Referenced by llvm::MCTargetAsmParser::copySTI().

◆ getSubtargetInfo()

const MCSubtargetInfo * llvm::MCContext::getSubtargetInfo ( ) const
inline

Definition at line 418 of file MCContext.h.

Referenced by llvm::CSKYConstantPool::emitAll().

◆ getSwift5ReflectionSegmentName()

const StringRef & llvm::MCContext::getSwift5ReflectionSegmentName ( ) const
inline

Definition at line 397 of file MCContext.h.

◆ getSymbols()

const SymbolTable & llvm::MCContext::getSymbols ( ) const
inline

getSymbols - Get a reference for the symbol table for clients that want to, for example, iterate over all symbols.

'const' because we still want any modifications to the table itself to use the MCContext APIs.

Definition at line 509 of file MCContext.h.

Referenced by llvm::WebAssemblyAsmPrinter::emitDecls().

◆ getTargetOptions()

const MCTargetOptions * llvm::MCContext::getTargetOptions ( ) const
inline

◆ getTargetTriple()

const Triple & llvm::MCContext::getTargetTriple ( ) const
inline

◆ getWasmSection() [1/3]

MCSectionWasm * MCContext::getWasmSection ( const Twine Section,
SectionKind  K,
unsigned  Flags,
const MCSymbolWasm Group,
unsigned  UniqueID 
)

◆ getWasmSection() [2/3]

MCSectionWasm * MCContext::getWasmSection ( const Twine Section,
SectionKind  K,
unsigned  Flags,
const Twine Group,
unsigned  UniqueID 
)

◆ getWasmSection() [3/3]

MCSectionWasm * llvm::MCContext::getWasmSection ( const Twine Section,
SectionKind  K,
unsigned  Flags = 0 
)
inline

◆ getXCOFFSection()

MCSectionXCOFF * MCContext::getXCOFFSection ( StringRef  Section,
SectionKind  K,
std::optional< XCOFF::CsectProperties CsectProp = std::nullopt,
bool  MultiSymbolsAllowed = false,
std::optional< XCOFF::DwarfSectionSubtypeFlags DwarfSubtypeFlags = std::nullopt 
)

◆ hadError()

bool llvm::MCContext::hadError ( )
inline

Definition at line 828 of file MCContext.h.

◆ hasXCOFFSection()

bool MCContext::hasXCOFFSection ( StringRef  Section,
XCOFF::CsectProperties  CsectProp 
) const

Definition at line 799 of file MCContext.cpp.

References llvm::XCOFF::CsectProperties::MappingClass.

◆ initInlineSourceManager()

void MCContext::initInlineSourceManager ( )

Definition at line 126 of file MCContext.cpp.

◆ isDwarfMD5UsageConsistent()

bool llvm::MCContext::isDwarfMD5UsageConsistent ( unsigned  CUID) const
inline

Reports whether MD5 checksum usage is consistent (all-or-none).

Definition at line 735 of file MCContext.h.

References getMCDwarfLineTable(), and llvm::MCDwarfLineTable::isMD5UsageConsistent().

◆ isELFGenericMergeableSection()

bool MCContext::isELFGenericMergeableSection ( StringRef  Name)

◆ isELFImplicitMergeableSectionNamePrefix()

bool MCContext::isELFImplicitMergeableSectionNamePrefix ( StringRef  Name)

Definition at line 656 of file MCContext.cpp.

Referenced by calcUniqueIDUpdateFlagsAndSize(), and isELFGenericMergeableSection().

◆ isValidDwarfFileNumber()

bool MCContext::isValidDwarfFileNumber ( unsigned  FileNumber,
unsigned  CUID = 0 
)

isValidDwarfFileNumber - takes a dwarf file number and returns true if it currently is assigned and false otherwise.

Definition at line 1000 of file MCContext.cpp.

References getDwarfVersion(), llvm::MCDwarfLineTable::getMCDwarfFiles(), and getMCDwarfLineTable().

◆ lookupMacro()

MCAsmMacro * llvm::MCContext::lookupMacro ( StringRef  Name)
inline

Definition at line 833 of file MCContext.h.

References I, and Name.

◆ lookupSymbol()

MCSymbol * MCContext::lookupSymbol ( const Twine Name) const

◆ operator=()

MCContext & llvm::MCContext::operator= ( const MCContext )
delete

◆ recordELFMergeableSectionInfo()

void MCContext::recordELFMergeableSectionInfo ( StringRef  SectionName,
unsigned  Flags,
unsigned  UniqueID,
unsigned  EntrySize 
)

Definition at line 635 of file MCContext.cpp.

References GenericSectionID, isELFGenericMergeableSection(), and llvm::ELF::SHF_MERGE.

Referenced by getELFSection().

◆ registerInlineAsmLabel()

void MCContext::registerInlineAsmLabel ( MCSymbol Sym)

registerInlineAsmLabel - Records that the name is a label referenced in inline assembly.

Definition at line 424 of file MCContext.cpp.

References Sym.

Referenced by EmitInlineAsmStr().

◆ remapDebugPath()

void MCContext::remapDebugPath ( SmallVectorImpl< char > &  Path)

Remap one path in-place as per the debug prefix map.

Definition at line 901 of file MCContext.cpp.

References From, llvm::sys::path::replace_path_prefix(), and llvm::reverse().

Referenced by RemapDebugPaths().

◆ RemapDebugPaths()

void MCContext::RemapDebugPaths ( )

◆ reportError()

void MCContext::reportError ( SMLoc  L,
const Twine Msg 
)

Definition at line 1072 of file MCContext.cpp.

References D, llvm::SourceMgr::DK_Error, and llvm::SourceMgr::GetMessage().

Referenced by llvm::ARMAsmBackend::adjustFixupValue(), adjustFixupValue(), ARM64EmitUnwindInfo(), ARMEmitUnwindInfo(), checkARM64Instructions(), checkARMInstructions(), llvm::MCStreamer::checkCVLocSection(), checkIs32(), checkIs64(), llvm::ELFObjectWriter::checkRelocation(), llvm::MCAssembler::computeFragmentSize(), llvm::MCStreamer::emitCFIStartProc(), llvm::MCStreamer::emitCVInlineSiteIdDirective(), llvm::AMDGPUAsmPrinter::emitFunctionBodyStart(), llvm::AsmPrinter::emitGlobalVariable(), llvm::AMDGPUAsmPrinter::emitGlobalVariable(), llvm::MCObjectStreamer::emitInstruction(), llvm::MCStreamer::emitLabel(), llvm::MCELFStreamer::emitSymbolAttribute(), llvm::MCObjectStreamer::emitValueImpl(), llvm::MCStreamer::emitWinCFIAllocStack(), llvm::MCStreamer::emitWinCFIEndChained(), llvm::MCStreamer::emitWinCFIEndProc(), llvm::MCStreamer::emitWinCFIPushFrame(), llvm::MCStreamer::emitWinCFISaveReg(), llvm::MCStreamer::emitWinCFISaveXMM(), llvm::MCStreamer::emitWinCFISetFrame(), llvm::MCStreamer::emitWinCFIStartProc(), llvm::MCStreamer::emitWinEHHandler(), llvm::MCStreamer::emitWinEHHandlerData(), llvm::MCStreamer::EnsureValidWinFrameInfo(), extractBitsForFixup(), llvm::MCStreamer::finish(), fixupLeb128(), getAbsoluteReloc(), llvm::MCAssembler::getBaseSymbol(), getCOFFSection(), llvm::MipsMCCodeEmitter::getExprOpValue(), llvm::WebAssembly::getOrCreateFuncrefCallTableSymbol(), llvm::WebAssembly::getOrCreateFunctionTableSymbol(), getPCRelReloc(), getPLTReloc(), getRelocType32(), getRelocType64(), llvm::X86RegisterInfo::getReservedRegs(), getTLSGDReloc(), getTLSLDMReloc(), getTLSLDOReloc(), getTLSLEReloc(), isNonILP32reloc(), llvm::ELFObjectWriter::recordRelocation(), llvm::HexagonMCChecker::reportError(), llvm::HexagonShuffler::reportError(), reportOutOfRangeError(), reportWarning(), llvm::AVRTargetObjectFile::SelectSectionForGlobal(), llvm::MCStreamer::switchSection(), llvm::AMDGPU::AMDGPUMCKernelCodeT::validate(), and llvm::MCAssembler::writeSectionData().

◆ reportWarning()

void MCContext::reportWarning ( SMLoc  L,
const Twine Msg 
)

◆ reset()

void MCContext::reset ( )

◆ setCompilationDir()

void llvm::MCContext::setCompilationDir ( StringRef  S)
inline

Set the compilation directory for DW_AT_comp_dir.

Definition at line 670 of file MCContext.h.

References llvm::StringRef::str().

◆ setCurrentDwarfLoc()

void llvm::MCContext::setCurrentDwarfLoc ( unsigned  FileNum,
unsigned  Line,
unsigned  Column,
unsigned  Flags,
unsigned  Isa,
unsigned  Discriminator 
)
inline

Saves the information from the currently parsed dwarf .loc directive and sets DwarfLocSeen.

When the next instruction is assembled an entry in the line number table with this information and the address of the instruction will be created.

Definition at line 743 of file MCContext.h.

References llvm::MCDwarfLoc::setColumn(), llvm::MCDwarfLoc::setDiscriminator(), llvm::MCDwarfLoc::setFileNum(), llvm::MCDwarfLoc::setFlags(), llvm::MCDwarfLoc::setIsa(), and llvm::MCDwarfLoc::setLine().

Referenced by llvm::MCStreamer::emitDwarfLocDirective().

◆ setDiagnosticHandler()

void llvm::MCContext::setDiagnosticHandler ( DiagHandlerTy  DiagHandler)
inline

◆ setDwarfCompileUnitID()

void llvm::MCContext::setDwarfCompileUnitID ( unsigned  CUIndex)
inline

Definition at line 722 of file MCContext.h.

◆ setDwarfDebugFlags()

void llvm::MCContext::setDwarfDebugFlags ( StringRef  S)
inline

Definition at line 792 of file MCContext.h.

◆ setDwarfDebugProducer()

void llvm::MCContext::setDwarfDebugProducer ( StringRef  S)
inline

Definition at line 795 of file MCContext.h.

◆ setDwarfFormat()

void llvm::MCContext::setDwarfFormat ( dwarf::DwarfFormat  f)
inline

Definition at line 798 of file MCContext.h.

◆ setDwarfVersion()

void llvm::MCContext::setDwarfVersion ( uint16_t  v)
inline

Definition at line 801 of file MCContext.h.

◆ setGenDwarfFileNumber()

void llvm::MCContext::setGenDwarfFileNumber ( unsigned  FileNumber)
inline

Definition at line 766 of file MCContext.h.

◆ setGenDwarfForAssembly()

void llvm::MCContext::setGenDwarfForAssembly ( bool  Value)
inline

Definition at line 761 of file MCContext.h.

◆ setGenDwarfRootFile()

void MCContext::setGenDwarfRootFile ( StringRef  FileName,
StringRef  Buffer 
)

◆ setMainFileName()

void llvm::MCContext::setMainFileName ( StringRef  S)
inline

Set the main file name and override the default.

Definition at line 687 of file MCContext.h.

◆ setMCLineTableRootFile()

void llvm::MCContext::setMCLineTableRootFile ( unsigned  CUID,
StringRef  CompilationDir,
StringRef  Filename,
std::optional< MD5::MD5Result Checksum,
std::optional< StringRef Source 
)
inline

Specifies the "root" file and directory of the compilation unit.

These are "file 0" and "directory 0" in DWARF v5.

Definition at line 726 of file MCContext.h.

References getMCDwarfLineTable(), and llvm::MCDwarfLineTable::setRootFile().

Referenced by llvm::MCStreamer::emitDwarfFile0Directive(), and setGenDwarfRootFile().

◆ setObjectFileInfo()

void llvm::MCContext::setObjectFileInfo ( const MCObjectFileInfo Mofi)
inline

◆ setSecureLog()

void llvm::MCContext::setSecureLog ( std::unique_ptr< raw_fd_ostream Value)
inline

Definition at line 809 of file MCContext.h.

◆ setSecureLogUsed()

void llvm::MCContext::setSecureLogUsed ( bool  Value)
inline

Definition at line 814 of file MCContext.h.

◆ setSymbolValue()

void MCContext::setSymbolValue ( MCStreamer Streamer,
const Twine Sym,
uint64_t  Val 
)

Set value for a symbol.

Definition at line 418 of file MCContext.cpp.

References llvm::MCConstantExpr::create(), llvm::MCStreamer::emitAssignment(), getOrCreateSymbol(), and Sym.

◆ setUseNamesOnTempLabels()

void llvm::MCContext::setUseNamesOnTempLabels ( bool  Value)
inline

Definition at line 424 of file MCContext.h.

◆ undefineMacro()

void llvm::MCContext::undefineMacro ( StringRef  Name)
inline

Definition at line 842 of file MCContext.h.

References Name.


The documentation for this class was generated from the following files: