LLVM
8.0.1
|
Instances of this class represent a uniqued identifier for a section in the current translation unit. More...
#include "llvm/MC/MCSection.h"
Public Types | |
enum | SectionVariant { SV_COFF = 0, SV_ELF, SV_MachO, SV_Wasm } |
enum | BundleLockStateType { NotBundleLocked, BundleLocked, BundleLockedAlignToEnd } |
Express the state of bundle locked groups while emitting code. More... | |
using | FragmentListType = iplist< MCFragment > |
using | const_iterator = FragmentListType::const_iterator |
using | iterator = FragmentListType::iterator |
using | const_reverse_iterator = FragmentListType::const_reverse_iterator |
using | reverse_iterator = FragmentListType::reverse_iterator |
Static Public Member Functions | |
static FragmentListType MCSection::* | getSublistAccess (MCFragment *) |
Support for MCFragment::getNextNode(). More... | |
Protected Member Functions | |
MCSection (SectionVariant V, SectionKind K, MCSymbol *Begin) | |
~MCSection () | |
Protected Attributes | |
SectionVariant | Variant |
SectionKind | Kind |
Instances of this class represent a uniqued identifier for a section in the current translation unit.
The MCContext class uniques and creates these.
Definition at line 39 of file MCSection.h.
Definition at line 52 of file MCSection.h.
Definition at line 55 of file MCSection.h.
Definition at line 50 of file MCSection.h.
Definition at line 53 of file MCSection.h.
Definition at line 56 of file MCSection.h.
Express the state of bundle locked groups while emitting code.
Enumerator | |
---|---|
NotBundleLocked | |
BundleLocked | |
BundleLockedAlignToEnd |
Definition at line 44 of file MCSection.h.
Enumerator | |
---|---|
SV_COFF | |
SV_ELF | |
SV_MachO | |
SV_Wasm |
Definition at line 41 of file MCSection.h.
|
protected |
Definition at line 24 of file MCSection.cpp.
|
protecteddefault |
Referenced by hasEnded().
|
inline |
Definition at line 163 of file MCSection.h.
Referenced by dump(), llvm::MCAssembler::Finish(), and llvm::MCContext::getWasmSection().
|
inline |
Definition at line 164 of file MCSection.h.
LLVM_DUMP_METHOD void MCSection::dump | ( | ) | const |
Definition at line 91 of file MCSection.cpp.
References begin(), end(), and llvm::errs().
|
inline |
Definition at line 166 of file MCSection.h.
Referenced by dump(), llvm::MCAssembler::Finish(), and getSubsectionInsertionPoint().
|
inline |
Definition at line 167 of file MCSection.h.
|
inline |
Definition at line 121 of file MCSection.h.
Referenced by addData(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolIndex(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCObjectStreamer::EmitValueToAlignment(), llvm::MipsTargetELFStreamer::finish(), getAlignment(), llvm::MachObjectWriter::getPaddingSize(), isWeak(), llvm::MCCodePadder::relaxFragment(), and setSectionAlignmentForBundling().
|
inline |
Definition at line 110 of file MCSection.h.
Referenced by llvm::DwarfCompileUnit::addAddrTableBase(), llvm::DwarfTypeUnit::addGlobalType(), llvm::DwarfCompileUnit::addScopeRangeList(), llvm::DwarfUnit::addStringOffsetsStart(), llvm::DwarfDebug::beginModule(), canGoAfterDWARF(), llvm::MCELFStreamer::ChangeSection(), llvm::MCWasmStreamer::ChangeSection(), computeIndexValue(), llvm::MCContext::createELFRelSection(), llvm::DwarfUnit::emitCommonHeader(), llvm::AsmPrinter::emitDwarfSymbolReference(), llvm::MCELFStreamer::EmitIdent(), llvm::DwarfDebug::endFunctionImpl(), llvm::MCObjectFileInfo::getStackSizesSection(), hasPrefix(), llvm::DwarfCompileUnit::initStmtList(), isWeak(), llvm::MCDwarfLineStr::MCDwarfLineStr(), llvm::MCContext::renameELFSection(), and llvm::MCStreamer::SwitchSection().
Definition at line 111 of file MCSection.h.
|
inline |
Definition at line 130 of file MCSection.h.
Referenced by CheckBundleSubtargets(), and llvm::MCELFStreamer::EmitBundleUnlock().
|
inline |
Definition at line 160 of file MCSection.h.
Referenced by getPlatformName().
|
inline |
Definition at line 161 of file MCSection.h.
Definition at line 29 of file MCSection.cpp.
References llvm::MCContext::createTempSymbol().
Referenced by llvm::MCStreamer::endSection().
|
inline |
Definition at line 150 of file MCSection.h.
Referenced by llvm::MCObjectStreamer::flushPendingLabels(), llvm::MCAsmLayout::getSectionAddressSize(), getSubsectionInsertionPoint(), llvm::MCContext::getWasmSection(), llvm::MCObjectStreamer::insert(), llvm::MCAssembler::layout(), and llvm::MCFragment::MCFragment().
|
inline |
Definition at line 151 of file MCSection.h.
|
inline |
Definition at line 106 of file MCSection.h.
References Kind.
Referenced by llvm::MCContext::getAssociativeCOFFSection(), isDwarfSection(), and llvm::MCSectionCOFF::UseCodeAlign().
|
inline |
Definition at line 127 of file MCSection.h.
Referenced by llvm::MachObjectWriter::getPaddingSize().
|
inline |
Definition at line 124 of file MCSection.h.
Referenced by canUseLocalRelocation(), getARMFixupKindMachOInfo(), getFixupKindLog2Size(), and getFixupOffset().
|
inlinestatic |
Support for MCFragment::getNextNode().
Definition at line 156 of file MCSection.h.
MCSection::iterator MCSection::getSubsectionInsertionPoint | ( | unsigned | Subsection | ) |
Definition at line 59 of file MCSection.cpp.
References end(), F(), getFragmentList(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::lower_bound(), MI, and llvm::MCFragment::setParent().
Referenced by llvm::MCObjectStreamer::changeSectionImpl().
|
inline |
Definition at line 108 of file MCSection.h.
Referenced by llvm::MCSectionWasm::classof(), llvm::MCSectionMachO::classof(), llvm::MCSectionELF::classof(), llvm::MCSectionCOFF::classof(), and getPlatformName().
|
inline |
Definition at line 144 of file MCSection.h.
bool MCSection::hasEnded | ( | ) | const |
Definition at line 35 of file MCSection.cpp.
References llvm::MCSymbol::isInSection(), and ~MCSection().
Referenced by llvm::MCStreamer::SwitchSection().
|
inline |
Definition at line 141 of file MCSection.h.
Referenced by llvm::MCObjectStreamer::mayHaveInstructions(), and setSectionAlignmentForBundling().
|
inline |
Definition at line 134 of file MCSection.h.
Referenced by CheckBundleSubtargets(), and llvm::MCELFStreamer::EmitBundleUnlock().
|
inline |
Definition at line 132 of file MCSection.h.
Referenced by llvm::MCObjectStreamer::EmitInstruction(), and llvm::MCELFStreamer::MCELFStreamer().
|
inline |
Definition at line 147 of file MCSection.h.
Referenced by isWeak(), and llvm::MCAssembler::registerSection().
|
pure virtual |
Check whether this section is "virtual", that is has no actual object file contents.
Implemented in llvm::MCSectionELF, llvm::MCSectionCOFF, llvm::MCSectionMachO, and llvm::MCSectionWasm.
Referenced by llvm::AsmPrinter::EmitGlobalVariable(), llvm::MachObjectWriter::getPaddingSize(), llvm::MCAsmLayout::getSectionFileSize(), and llvm::MCAssembler::writeSectionData().
|
pure virtual |
Implemented in llvm::MCSectionELF, llvm::MCSectionCOFF, llvm::MCSectionMachO, and llvm::MCSectionWasm.
Referenced by llvm::NVPTXTargetStreamer::changeSection(), llvm::MCTargetStreamer::changeSection(), and truncateToSize().
|
inline |
Definition at line 169 of file MCSection.h.
Referenced by llvm::MCAssembler::Finish().
|
inline |
Definition at line 170 of file MCSection.h.
|
inline |
Definition at line 172 of file MCSection.h.
|
inline |
Definition at line 173 of file MCSection.h.
References llvm::dump().
|
inline |
Definition at line 122 of file MCSection.h.
Referenced by llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolIndex(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsRegInfoRecord::EmitMipsOptionRecord(), llvm::MCObjectStreamer::EmitValueToAlignment(), llvm::MipsTargetELFStreamer::finish(), isWeak(), and setSectionAlignmentForBundling().
|
inline |
Definition at line 114 of file MCSection.h.
References assert().
Referenced by canGoAfterDWARF(), and hasPrefix().
|
inline |
Definition at line 137 of file MCSection.h.
Referenced by CheckBundleSubtargets(), and llvm::MCELFStreamer::EmitBundleLock().
void MCSection::setBundleLockState | ( | BundleLockStateType | NewState | ) |
Definition at line 39 of file MCSection.cpp.
References BundleLockedAlignToEnd, NotBundleLocked, and llvm::report_fatal_error().
Referenced by llvm::MCELFStreamer::EmitBundleLock(), and llvm::MCELFStreamer::EmitBundleUnlock().
|
inline |
Definition at line 145 of file MCSection.h.
Referenced by llvm::MCObjectStreamer::EmitBytes().
|
inline |
Definition at line 142 of file MCSection.h.
Referenced by llvm::MCObjectStreamer::EmitInstruction().
|
inline |
Definition at line 148 of file MCSection.h.
Referenced by llvm::MCAssembler::registerSection().
|
inline |
Definition at line 128 of file MCSection.h.
Referenced by llvm::MCAssembler::layout().
|
inline |
Definition at line 125 of file MCSection.h.
Referenced by llvm::MCAssembler::layout().
|
pure virtual |
Return true if a .align directive should use "optimized nops" to fill instead of 0s.
Implemented in llvm::MCSectionELF, llvm::MCSectionCOFF, llvm::MCSectionMachO, and llvm::MCSectionWasm.
Referenced by getPrefixes(), llvm::IsCPSRDead< MCInst >(), and parseHexOcta().
|
protected |
Definition at line 97 of file MCSection.h.
Referenced by llvm::MCSectionWasm::isWasmData().
|
protected |
Definition at line 96 of file MCSection.h.