|
LLVM
4.0.0
|
Context object for machine code objects. More...
#include <MCContext.h>
Public Types | |
| typedef StringMap< MCSymbol *, BumpPtrAllocator & > | SymbolTable |
Public Member Functions | |
| MCContext (const MCAsmInfo *MAI, const MCRegisterInfo *MRI, const MCObjectFileInfo *MOFI, const SourceMgr *Mgr=nullptr, bool DoAutoReset=true) | |
| ~MCContext () | |
| const SourceMgr * | getSourceManager () const |
| const MCAsmInfo * | getAsmInfo () const |
| const MCRegisterInfo * | getRegisterInfo () const |
| const MCObjectFileInfo * | getObjectFileInfo () const |
| CodeViewContext & | getCVContext () |
| void | setAllowTemporaryLabels (bool Value) |
| void | setUseNamesOnTempLabels (bool Value) |
| char * | getSecureLogFile () |
| raw_fd_ostream * | getSecureLog () |
| bool | getSecureLogUsed () |
| void | setSecureLog (std::unique_ptr< raw_fd_ostream > Value) |
| void | setSecureLogUsed (bool Value) |
| void * | allocate (unsigned Size, unsigned Align=8) |
| void | deallocate (void *Ptr) |
| bool | hadError () |
| void | reportError (SMLoc L, const Twine &Msg) |
| LLVM_ATTRIBUTE_NORETURN void | reportFatalError (SMLoc L, const Twine &Msg) |
Module Lifetime Management | |
| void | reset () |
| reset - return object to right after construction state to prepare to process a new module More... | |
Symbol Management | |
| MCSymbol * | createLinkerPrivateTempSymbol () |
| Create and return a new linker temporary symbol with a unique but unspecified name. More... | |
| MCSymbol * | createTempSymbol (bool CanBeUnnamed=true) |
| Create and return a new assembler temporary symbol with a unique but unspecified name. More... | |
| MCSymbol * | createTempSymbol (const Twine &Name, bool AlwaysAddSuffix, bool CanBeUnnamed=true) |
| MCSymbol * | createDirectionalLocalSymbol (unsigned LocalLabelVal) |
| Create the definition of a directional local symbol for numbered label (used for "1:" definitions). More... | |
| MCSymbol * | getDirectionalLocalSymbol (unsigned LocalLabelVal, bool Before) |
| Create and return a directional local symbol for numbered label (used for "1b" or 1f" references). More... | |
| MCSymbol * | getOrCreateSymbol (const Twine &Name) |
Lookup the symbol inside with the specified Name. More... | |
| MCSymbolELF * | getOrCreateSectionSymbol (const MCSectionELF &Section) |
| MCSymbol * | getOrCreateFrameAllocSymbol (StringRef FuncName, unsigned Idx) |
| Gets a symbol that will be defined to the final stack offset of a local variable after codegen. More... | |
| MCSymbol * | getOrCreateParentFrameOffsetSymbol (StringRef FuncName) |
| MCSymbol * | getOrCreateLSDASymbol (StringRef FuncName) |
| MCSymbol * | lookupSymbol (const Twine &Name) const |
Get the symbol for Name, or null. More... | |
| void | setSymbolValue (MCStreamer &Streamer, StringRef Sym, uint64_t Val) |
| Set value for a symbol. More... | |
| const SymbolTable & | getSymbols () const |
| getSymbols - Get a reference for the symbol table for clients that want to, for example, iterate over all symbols. More... | |
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. More... | |
| void | setCompilationDir (StringRef S) |
| Set the compilation directory for DW_AT_comp_dir. More... | |
| const std::string & | getMainFileName () const |
| Get the main file name for use in error messages and debug info. More... | |
| void | setMainFileName (StringRef S) |
| Set the main file name and override the default. More... | |
| unsigned | getDwarfFile (StringRef Directory, StringRef FileName, unsigned FileNumber, unsigned CUID) |
| Creates an entry in the dwarf file and directory tables. More... | |
| bool | isValidDwarfFileNumber (unsigned FileNumber, unsigned CUID=0) |
| isValidDwarfFileNumber - takes a dwarf file number and returns true if it currently is assigned and false otherwise. More... | |
| const std::map< unsigned, MCDwarfLineTable > & | getMCDwarfLineTables () const |
| MCDwarfLineTable & | getMCDwarfLineTable (unsigned CUID) |
| const MCDwarfLineTable & | getMCDwarfLineTable (unsigned CUID) const |
| const SmallVectorImpl < MCDwarfFile > & | getMCDwarfFiles (unsigned CUID=0) |
| const SmallVectorImpl < std::string > & | getMCDwarfDirs (unsigned CUID=0) |
| bool | hasMCLineSections () const |
| unsigned | getDwarfCompileUnitID () |
| void | setDwarfCompileUnitID (unsigned CUIndex) |
| void | setMCLineTableCompilationDir (unsigned CUID, StringRef CompilationDir) |
| 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. More... | |
| void | clearDwarfLocSeen () |
| bool | getDwarfLocSeen () |
| const MCDwarfLoc & | getCurrentDwarfLoc () |
| bool | getGenDwarfForAssembly () |
| void | setGenDwarfForAssembly (bool Value) |
| unsigned | getGenDwarfFileNumber () |
| void | setGenDwarfFileNumber (unsigned FileNumber) |
| const SetVector< MCSection * > & | getGenDwarfSectionSyms () |
| bool | addGenDwarfSection (MCSection *Sec) |
| void | finalizeDwarfSections (MCStreamer &MCOS) |
| Remove empty sections from SectionStartEndSyms, to avoid generating useless debug info for them. More... | |
| const std::vector < MCGenDwarfLabelEntry > & | getMCGenDwarfLabelEntries () const |
| void | addMCGenDwarfLabelEntry (const MCGenDwarfLabelEntry &E) |
| void | setDwarfDebugFlags (StringRef S) |
| StringRef | getDwarfDebugFlags () |
| void | setDwarfDebugProducer (StringRef S) |
| StringRef | getDwarfDebugProducer () |
| dwarf::DwarfFormat | getDwarfFormat () const |
| void | setDwarfVersion (uint16_t v) |
| uint16_t | getDwarfVersion () const |
Context object for machine code objects.
This class owns all of the sections that it creates.
Definition at line 51 of file MCContext.h.
| typedef StringMap<MCSymbol *, BumpPtrAllocator &> llvm::MCContext::SymbolTable |
Definition at line 56 of file MCContext.h.
| 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 320 of file MCContext.h.
|
explicit |
Definition at line 44 of file MCContext.cpp.
References AsSecureLogFileName, llvm::SourceMgr::getMainFileID(), llvm::SourceMgr::getMemoryBuffer(), and llvm::SourceMgr::getNumBuffers().
| MCContext::~MCContext | ( | ) |
Definition at line 62 of file MCContext.cpp.
References reset().
Definition at line 513 of file MCContext.h.
|
inline |
Definition at line 521 of file MCContext.h.
Referenced by llvm::MCGenDwarfLabelEntry::Make().
Definition at line 547 of file MCContext.h.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate().
|
inline |
Definition at line 499 of file MCContext.h.
Referenced by llvm::MCDwarfLineEntry::Make().
Create the definition of a directional local symbol for numbered label (used for "1:" definitions).
Definition at line 244 of file MCContext.cpp.
| MCSectionELF * MCContext::createELFGroupSection | ( | const MCSymbolELF * | Group | ) |
Definition at line 389 of file MCContext.cpp.
References llvm::SectionKind::getReadOnly(), and llvm::ELF::SHT_GROUP.
| MCSectionELF * MCContext::createELFRelSection | ( | const Twine & | Name, |
| unsigned | Type, | ||
| unsigned | Flags, | ||
| unsigned | EntrySize, | ||
| const MCSymbolELF * | Group, | ||
| const MCSectionELF * | Associated | ||
| ) |
Definition at line 319 of file MCContext.cpp.
References fuzzer::Flags, llvm::SectionKind::getReadOnly(), I, llvm::StringMap< ValueTy, AllocatorTy >::insert(), and llvm::Twine::str().
| MCSymbol * MCContext::createLinkerPrivateTempSymbol | ( | ) |
Create and return a new linker temporary symbol with a unique but unspecified name.
Definition at line 212 of file MCContext.cpp.
References llvm::MCAsmInfo::getLinkerPrivateGlobalPrefix().
Create and return a new assembler temporary symbol with a unique but unspecified name.
Definition at line 218 of file MCContext.cpp.
Referenced by llvm::ConstantPool::addEntry(), llvm::MachineFunction::addLandingPad(), llvm::DebugHandlerBase::beginInstruction(), llvm::AsmPrinter::createTempSymbol(), llvm::MCDwarfLineTableHeader::Emit(), llvm::MCGenDwarfInfo::Emit(), llvm::MCDwarfFrameEmitter::Emit(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::CodeViewContext::emitFileChecksums(), EmitGenDwarfInfo(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::CodeViewContext::emitLineTableForFunction(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::CodeViewContext::emitStringTable(), EmitUnwindInfo(), llvm::AsmPrinter::emitXRayTable(), llvm::DebugHandlerBase::endInstruction(), forceExpAbs(), getCOFFSection(), getELFSection(), llvm::MCSection::getEndSymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getIndirectSymViaGOTPCRel(), getMachOSection(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::MCCVLineEntry::Make(), llvm::MCDwarfLineEntry::Make(), llvm::MCGenDwarfLabelEntry::Make(), and llvm::FaultMaps::recordFaultingOp().
| MCSymbol * MCContext::createTempSymbol | ( | const Twine & | Name, |
| bool | AlwaysAddSuffix, | ||
| bool | CanBeUnnamed = true |
||
| ) |
Definition at line 205 of file MCContext.cpp.
References llvm::MCAsmInfo::getPrivateGlobalPrefix().
|
inline |
Definition at line 550 of file MCContext.h.
| void MCContext::finalizeDwarfSections | ( | MCStreamer & | MCOS | ) |
Remove empty sections from SectionStartEndSyms, to avoid generating useless debug info for them.
Definition at line 495 of file MCContext.cpp.
References llvm::MCStreamer::mayHaveInstructions().
Referenced by llvm::MCGenDwarfInfo::Emit().
Definition at line 243 of file MCContext.h.
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::MCDwarfLineTableHeader::Emit(), llvm::MCGenDwarfInfo::Emit(), llvm::MCDwarfFrameEmitter::Emit(), EmitDwarfLineTable(), emitFDESymbol(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), EmitGenDwarfRanges(), EmitPersonality(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), forceExpAbs(), llvm::MCAssembler::getAtom(), getDataAlignmentFactor(), getRelocType32(), getRelocType64(), getSizeForEncoding(), llvm::MachineBasicBlock::getSymbol(), llvm::MCELFStreamer::InitSections(), and ScaleAddrDelta().
| 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 444 of file MCContext.cpp.
References Characteristics, GenericSectionID, llvm::MCSectionCOFF::getCharacteristics(), getCOFFSection(), llvm::MCSection::getKind(), llvm::MCSymbol::getName(), llvm::MCSectionCOFF::getSectionName(), llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, and llvm::COFF::IMAGE_SCN_LNK_COMDAT.
Referenced by llvm::TargetLoweringObjectFileCOFF::getStaticCtorSection(), llvm::TargetLoweringObjectFileCOFF::getStaticDtorSection(), and getWinCFISection().
| MCSectionCOFF * MCContext::getCOFFSection | ( | StringRef | Section, |
| unsigned | Characteristics, | ||
| SectionKind | Kind, | ||
| StringRef | COMDATSymName, | ||
| int | Selection, | ||
| unsigned | UniqueID = GenericSectionID, |
||
| const char * | BeginSymName = nullptr |
||
| ) |
Definition at line 396 of file MCContext.cpp.
References createTempSymbol(), llvm::StringRef::empty(), llvm::MCSymbol::getName(), getOrCreateSymbol(), and llvm::ARMBuildAttrs::Section.
Referenced by getAssociativeCOFFSection(), getCOFFSection(), llvm::TargetLoweringObjectFileCOFF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileCOFF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileCOFF::Initialize(), and llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal().
| MCSectionCOFF * MCContext::getCOFFSection | ( | StringRef | Section, |
| unsigned | Characteristics, | ||
| SectionKind | Kind, | ||
| const char * | BeginSymName = nullptr |
||
| ) |
Definition at line 428 of file MCContext.cpp.
References GenericSectionID, and getCOFFSection().
| MCSectionCOFF * MCContext::getCOFFSection | ( | StringRef | Section | ) |
Definition at line 436 of file MCContext.cpp.
References GenericSectionID, and llvm::ARMBuildAttrs::Section.
|
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 430 of file MCContext.h.
Referenced by EmitGenDwarfAbbrev(), and EmitGenDwarfInfo().
|
inline |
Definition at line 502 of file MCContext.h.
Referenced by llvm::MCDwarfLineEntry::Make().
| CodeViewContext & MCContext::getCVContext | ( | ) |
Definition at line 500 of file MCContext.cpp.
Referenced by llvm::MCObjectStreamer::EmitCVDefRangeDirective(), llvm::MCObjectStreamer::EmitCVFileChecksumsDirective(), llvm::MCStreamer::EmitCVFileDirective(), llvm::MCStreamer::EmitCVFuncIdDirective(), llvm::MCObjectStreamer::EmitCVInlineLinetableDirective(), llvm::MCStreamer::EmitCVInlineSiteIdDirective(), llvm::MCObjectStreamer::EmitCVLinetableDirective(), llvm::MCStreamer::EmitCVLocDirective(), llvm::MCObjectStreamer::EmitCVStringTableDirective(), and llvm::MCCVLineEntry::Make().
Create and return a directional local symbol for numbered label (used for "1b" or 1f" references).
Definition at line 249 of file MCContext.cpp.
|
inline |
Definition at line 476 of file MCContext.h.
Referenced by llvm::MCDwarfLineEntry::Make().
|
inline |
Definition at line 526 of file MCContext.h.
Referenced by EmitGenDwarfAbbrev(), and EmitGenDwarfInfo().
|
inline |
Definition at line 529 of file MCContext.h.
Referenced by EmitGenDwarfInfo().
| unsigned MCContext::getDwarfFile | ( | StringRef | Directory, |
| StringRef | FileName, | ||
| unsigned | FileNumber, | ||
| unsigned | CUID | ||
| ) |
Creates an entry in the dwarf file and directory tables.
getDwarfFile - takes a file name an 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 477 of file MCContext.cpp.
References llvm::MCDwarfLineTable::getFile().
Referenced by llvm::MCStreamer::EmitDwarfFileDirective().
|
inline |
Definition at line 530 of file MCContext.h.
References llvm::dwarf::DWARF32.
|
inline |
Definition at line 501 of file MCContext.h.
Referenced by llvm::MCDwarfLineEntry::Make().
|
inline |
Definition at line 535 of file MCContext.h.
Referenced by llvm::MCGenDwarfInfo::Emit(), EmitDwarfLineTable(), EmitGenDwarfAbbrev(), and EmitGenDwarfInfo().
| 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 333 of file MCContext.cpp.
References getELFSection().
|
inline |
Definition at line 341 of file MCContext.h.
Referenced by llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MCELFStreamer::EmitIdent(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsRegInfoRecord::EmitMipsOptionRecord(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), llvm::AsmPrinter::emitXRayTable(), llvm::MCObjectFileInfo::getDwarfTypesSection(), getELFNamedSection(), getELFSection(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), llvm::AMDGPU::getHSADataGlobalAgentSection(), llvm::AMDGPU::getHSADataGlobalProgramSection(), llvm::AMDGPU::getHSARodataReadonlyAgentSection(), llvm::AMDGPU::getHSATextSection(), getStaticStructorSection(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::HexagonTargetObjectFile::Initialize(), llvm::AVRTargetObjectFile::Initialize(), llvm::XCoreTargetObjectFile::Initialize(), llvm::LanaiTargetObjectFile::Initialize(), llvm::MipsTargetObjectFile::Initialize(), llvm::ARMElfTargetObjectFile::Initialize(), llvm::TargetLoweringObjectFileELF::InitializeELF(), selectELFSectionForGlobal(), and smallData().
|
inline |
Definition at line 346 of file MCContext.h.
References getELFSection().
|
inline |
Definition at line 351 of file MCContext.h.
References getELFSection().
|
inline |
Definition at line 357 of file MCContext.h.
References getELFSection().
|
inline |
Definition at line 364 of file MCContext.h.
References getELFSection().
| MCSectionELF * MCContext::getELFSection | ( | const Twine & | Section, |
| unsigned | Type, | ||
| unsigned | Flags, | ||
| unsigned | EntrySize, | ||
| const Twine & | Group, | ||
| unsigned | UniqueID, | ||
| const char * | BeginSymName | ||
| ) |
Definition at line 340 of file MCContext.cpp.
References getELFSection(), getOrCreateSymbol(), llvm::Twine::isTriviallyEmpty(), and llvm::Twine::str().
| MCSectionELF * MCContext::getELFSection | ( | const Twine & | Section, |
| unsigned | Type, | ||
| unsigned | Flags, | ||
| unsigned | EntrySize, | ||
| const MCSymbolELF * | Group, | ||
| unsigned | UniqueID, | ||
| const char * | BeginSymName, | ||
| const MCSectionELF * | Associated | ||
| ) |
Definition at line 352 of file MCContext.cpp.
References createTempSymbol(), llvm::SectionKind::getExecuteOnly(), llvm::MCSymbol::getName(), llvm::SectionKind::getReadOnly(), llvm::SectionKind::getText(), Kind, llvm::ELF::SHF_ARM_PURECODE, llvm::ELF::SHF_EXECINSTR, and llvm::Twine::str().
|
inline |
Definition at line 506 of file MCContext.h.
Referenced by llvm::MCGenDwarfLabelEntry::Make().
|
inline |
Definition at line 504 of file MCContext.h.
Definition at line 510 of file MCContext.h.
Referenced by llvm::MCGenDwarfInfo::Emit(), EmitGenDwarfAbbrev(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), EmitGenDwarfRanges(), and llvm::MCGenDwarfLabelEntry::Make().
| MCSectionMachO * MCContext::getMachOSection | ( | StringRef | Segment, |
| StringRef | Section, | ||
| unsigned | TypeAndAttributes, | ||
| unsigned | Reserved2, | ||
| SectionKind | K, | ||
| const char * | BeginSymName = nullptr |
||
| ) |
Return the MCSection for the specified mach-o section.
This requires the operands to be valid.
Definition at line 274 of file MCContext.cpp.
References createTempSymbol(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::ARMBuildAttrs::Section.
Referenced by llvm::X86AsmPrinter::EmitEndOfAsmFile(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), llvm::AsmPrinter::emitXRayTable(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), getMachOSection(), and llvm::TargetLoweringObjectFileMachO::Initialize().
|
inline |
Definition at line 334 of file MCContext.h.
References getMachOSection().
|
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 438 of file MCContext.h.
|
inline |
Definition at line 466 of file MCContext.h.
References llvm::MCDwarfLineTable::getMCDwarfDirs(), and getMCDwarfLineTable().
Referenced by EmitGenDwarfInfo().
|
inline |
Definition at line 463 of file MCContext.h.
References llvm::MCDwarfLineTable::getMCDwarfFiles(), and getMCDwarfLineTable().
Referenced by EmitGenDwarfInfo(), and isValidDwarfFileNumber().
|
inline |
Definition at line 453 of file MCContext.h.
Referenced by llvm::MCStreamer::getDwarfLineTableSymbol(), getMCDwarfDirs(), getMCDwarfFiles(), llvm::MCDwarfLineEntry::Make(), and setMCLineTableCompilationDir().
|
inline |
Definition at line 457 of file MCContext.h.
|
inline |
Definition at line 449 of file MCContext.h.
Referenced by llvm::MCDwarfLineTable::Emit().
|
inline |
Definition at line 518 of file MCContext.h.
Referenced by EmitGenDwarfInfo().
|
inline |
Definition at line 247 of file MCContext.h.
Referenced by llvm::createMachOStreamer(), llvm::MCDwarfLineTable::Emit(), llvm::MCGenDwarfInfo::Emit(), llvm::MCDwarfFrameEmitter::Emit(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), EmitDwarfLineTable(), llvm::MipsAsmPrinter::EmitEndOfAsmFile(), EmitGenDwarfAbbrev(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), EmitGenDwarfRanges(), llvm::MCWinCOFFStreamer::EmitLocalCommonSymbol(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), llvm::MipsTargetELFStreamer::finish(), getWinCFISection(), llvm::MCELFStreamer::InitSections(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), llvm::FaultMaps::serializeToFaultMapSection(), and llvm::StackMaps::serializeToStackMapSection().
Gets a symbol that will be defined to the final stack offset of a local variable after codegen.
| Idx | - The index of a local variable passed to .localescape. |
Definition at line 139 of file MCContext.cpp.
References getOrCreateSymbol(), and llvm::MCAsmInfo::getPrivateGlobalPrefix().
Definition at line 150 of file MCContext.cpp.
References getOrCreateSymbol(), and llvm::MCAsmInfo::getPrivateGlobalPrefix().
Referenced by LowerINTRINSIC_WO_CHAIN().
Definition at line 145 of file MCContext.cpp.
References getOrCreateSymbol(), and llvm::MCAsmInfo::getPrivateGlobalPrefix().
Referenced by recoverFramePointer().
| MCSymbolELF * MCContext::getOrCreateSectionSymbol | ( | const MCSectionELF & | Section | ) |
Definition at line 127 of file MCContext.cpp.
References llvm::MCSectionELF::getSectionName(), and llvm::ARMBuildAttrs::Section.
Referenced by llvm::MCELFStreamer::ChangeSection().
Lookup the symbol inside with the specified Name.
If it exists, return it. If not, create a forward reference and return it.
| Name | - The symbol name, which must be unique across all symbols. |
Definition at line 114 of file MCContext.cpp.
References assert(), llvm::StringRef::empty(), and llvm::Twine::toStringRef().
Referenced by llvm::AsmPrinter::doFinalization(), llvm::AMDGPUTargetELFStreamer::EmitAMDGPUHsaModuleScopeGlobal(), llvm::AMDGPUTargetELFStreamer::EmitAMDGPUHsaProgramScopeGlobal(), llvm::AMDGPUTargetELFStreamer::EmitAMDGPUSymbolType(), EmitCamlGlobal(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveCpsetup(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::X86AsmPrinter::EmitEndOfAsmFile(), llvm::EHStreamer::emitExceptionTable(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::X86AsmPrinter::EmitStartOfAsmFile(), llvm::WinException::endFunclet(), getCOFFSection(), llvm::MSP430MCInstLower::GetConstantPoolIndexSymbol(), llvm::LanaiMCInstLower::GetConstantPoolIndexSymbol(), llvm::AsmPrinter::GetCPISymbol(), getELFSection(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), getGlobalOffsetTable(), llvm::MachineFunction::getJTISymbol(), llvm::AsmPrinter::GetJTSetSymbol(), llvm::MSP430MCInstLower::GetJumpTableSymbol(), llvm::LanaiMCInstLower::GetJumpTableSymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), getOrCreateFrameAllocSymbol(), getOrCreateLSDASymbol(), getOrCreateParentFrameOffsetSymbol(), llvm::MachineFunction::getPICBaseSymbol(), getPICLabel(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::TargetMachine::getSymbol(), llvm::MachineBasicBlock::getSymbol(), GetSymbolFromOperand(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), getTLSGetOffset(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), llvm::FastISel::lowerCallTo(), llvm::AMDGPUMCInstLower::lowerOperand(), llvm::MCParserUtils::parseAssignmentExpression(), printSymbolOperand(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::FastISel::CallLoweringInfo::setCallee(), setSymbolValue(), smallData(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::tryAddingSymbolicOperand().
|
inline |
Definition at line 245 of file MCContext.h.
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::AVRAsmParser::AVRAsmParser(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::MipsELFStreamer::EmitInstruction(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::X86AsmInstrumentation::GetFrameRegGeneric(), llvm::HexagonMCCodeEmitter::getMachineOpValue(), llvm::AMDGPUDisassembler::getRegClassName(), llvm::MipsRegInfoRecord::MipsRegInfoRecord(), and llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand().
|
inline |
Definition at line 540 of file MCContext.h.
|
inline |
Definition at line 539 of file MCContext.h.
|
inline |
Definition at line 541 of file MCContext.h.
Definition at line 241 of file MCContext.h.
Referenced by llvm::MCObjectStreamer::emitFill().
| MCSubtargetInfo & MCContext::getSubtargetCopy | ( | const MCSubtargetInfo & | STI | ) |
Definition at line 465 of file MCContext.cpp.
Referenced by llvm::MCTargetAsmParser::copySTI(), and llvm::AsmPrinter::doInitialization().
|
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 313 of file MCContext.h.
|
inline |
Definition at line 552 of file MCContext.h.
|
inline |
Definition at line 470 of file MCContext.h.
isValidDwarfFileNumber - takes a dwarf file number and returns true if it currently is assigned and false otherwise.
Definition at line 485 of file MCContext.cpp.
References llvm::SmallVectorBase::empty(), getMCDwarfFiles(), and llvm::SmallVectorTemplateCommon< T >::size().
Get the symbol for Name, or null.
Definition at line 257 of file MCContext.cpp.
References llvm::StringMap< ValueTy, AllocatorTy >::lookup(), and llvm::Twine::toStringRef().
Referenced by llvm::MCParserUtils::parseAssignmentExpression().
| void MCContext::renameELFSection | ( | MCSectionELF * | Section, |
| StringRef | Name | ||
| ) |
Definition at line 303 of file MCContext.cpp.
References llvm::MCSectionELF::getGroup(), llvm::MCSectionELF::getSectionName(), llvm::MCSectionELF::getUniqueID(), I, and llvm::ARMBuildAttrs::Section.
Definition at line 510 of file MCContext.cpp.
References llvm::SourceMgr::DK_Error, llvm::SourceMgr::PrintMessage(), and llvm::report_fatal_error().
Referenced by llvm::ARMAsmBackend::adjustFixupValue(), adjustFixupValue(), checkIs32(), llvm::MCAssembler::computeFragmentSize(), llvm::MCStreamer::EmitCVInlineSiteIdDirective(), llvm::MCStreamer::EmitCVLocDirective(), llvm::MCObjectStreamer::emitFill(), llvm::MCAsmLayout::getBaseSymbol(), isNonILP32reloc(), and reportFatalError().
Definition at line 522 of file MCContext.cpp.
References reportError(), and llvm::sys::RunInterruptHandlers().
| void MCContext::reset | ( | ) |
reset - return object to right after construction state to prepare to process a new module
Definition at line 74 of file MCContext.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::StringMap< ValueTy, AllocatorTy >::clear(), DWARF2_FLAG_IS_STMT, and llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Reset().
Referenced by llvm::MachineModuleInfo::doFinalization(), and ~MCContext().
|
inline |
Definition at line 251 of file MCContext.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().
|
inline |
Set the compilation directory for DW_AT_comp_dir.
Definition at line 433 of file MCContext.h.
References llvm::StringRef::str().
|
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 488 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().
|
inline |
Definition at line 477 of file MCContext.h.
|
inline |
Definition at line 525 of file MCContext.h.
|
inline |
Definition at line 528 of file MCContext.h.
|
inline |
Definition at line 534 of file MCContext.h.
|
inline |
Definition at line 507 of file MCContext.h.
|
inline |
Definition at line 505 of file MCContext.h.
|
inline |
Set the main file name and override the default.
Definition at line 441 of file MCContext.h.
|
inline |
Definition at line 480 of file MCContext.h.
References getMCDwarfLineTable(), and llvm::MCDwarfLineTable::setCompilationDir().
|
inline |
Definition at line 542 of file MCContext.h.
|
inline |
Definition at line 545 of file MCContext.h.
| void MCContext::setSymbolValue | ( | MCStreamer & | Streamer, |
| StringRef | Sym, | ||
| uint64_t | Val | ||
| ) |
Set value for a symbol.
Definition at line 263 of file MCContext.cpp.
References llvm::MCConstantExpr::create(), llvm::MCStreamer::EmitAssignment(), getOrCreateSymbol(), and llvm::ARMBuildAttrs::Symbol.
|
inline |
Definition at line 252 of file MCContext.h.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().
1.8.6