LLVM API Documentation
#include <MCSectionELF.h>
Public Member Functions | |
bool | ShouldOmitSectionDirective (StringRef Name, const MCAsmInfo &MAI) const |
StringRef | getSectionName () const |
std::string | getLabelBeginName () const override |
std::string | getLabelEndName () const override |
unsigned | getType () const |
unsigned | getFlags () const |
unsigned | getEntrySize () const |
const MCSymbol * | getGroup () const |
void | PrintSwitchToSection (const MCAsmInfo &MAI, raw_ostream &OS, const MCExpr *Subsection) const override |
bool | UseCodeAlign () const override |
bool | isVirtualSection () const override |
bool | isBaseAddressKnownZero () const override |
Static Public Member Functions | |
static bool | classof (const MCSection *S) |
static unsigned | DetermineEntrySize (SectionKind Kind) |
Friends | |
class | MCContext |
MCSectionELF - This represents a section on linux, lots of unix variants and some bare metal systems.
Definition at line 30 of file MCSectionELF.h.
static bool llvm::MCSectionELF::classof | ( | const MCSection * | S | ) | [inline, static] |
Definition at line 92 of file MCSectionELF.h.
References llvm::MCSection::getVariant(), and llvm::MCSection::SV_ELF.
unsigned MCSectionELF::DetermineEntrySize | ( | SectionKind | Kind | ) | [static] |
Definition at line 161 of file MCSectionELF.cpp.
References llvm::SectionKind::isMergeable1ByteCString(), llvm::SectionKind::isMergeable2ByteCString(), llvm::SectionKind::isMergeable4ByteCString(), llvm::SectionKind::isMergeableConst16(), llvm::SectionKind::isMergeableConst4(), and llvm::SectionKind::isMergeableConst8().
Referenced by llvm::MCContext::getELFSection().
unsigned llvm::MCSectionELF::getEntrySize | ( | ) | const [inline] |
Definition at line 78 of file MCSectionELF.h.
unsigned llvm::MCSectionELF::getFlags | ( | ) | const [inline] |
Definition at line 77 of file MCSectionELF.h.
Referenced by llvm::MCELFStreamer::EmitLabel(), isBaseAddressKnownZero(), and UseCodeAlign().
const MCSymbol* llvm::MCSectionELF::getGroup | ( | ) | const [inline] |
Definition at line 79 of file MCSectionELF.h.
Referenced by llvm::MCContext::renameELFSection().
std::string llvm::MCSectionELF::getLabelBeginName | ( | ) | const [inline, override, virtual] |
Implements llvm::MCSection.
Definition at line 66 of file MCSectionELF.h.
References llvm::MCSymbol::getName(), and llvm::StringRef::str().
std::string llvm::MCSectionELF::getLabelEndName | ( | ) | const [inline, override, virtual] |
Implements llvm::MCSection.
Definition at line 71 of file MCSectionELF.h.
References llvm::MCSymbol::getName(), and llvm::StringRef::str().
StringRef llvm::MCSectionELF::getSectionName | ( | ) | const [inline] |
Definition at line 65 of file MCSectionELF.h.
Referenced by CompressDebugSection(), PrintSwitchToSection(), and llvm::MCContext::renameELFSection().
unsigned llvm::MCSectionELF::getType | ( | ) | const [inline] |
bool llvm::MCSectionELF::isBaseAddressKnownZero | ( | ) | const [inline, override, virtual] |
isBaseAddressKnownZero - We know that non-allocatable sections (like debug info) have a base of zero.
Reimplemented from llvm::MCSection.
Definition at line 88 of file MCSectionELF.h.
References getFlags(), and llvm::ELF::SHF_ALLOC.
bool MCSectionELF::isVirtualSection | ( | ) | const [override, virtual] |
isVirtualSection - Check whether this section is "virtual", that is has no actual object file contents.
Implements llvm::MCSection.
Definition at line 157 of file MCSectionELF.cpp.
References getType(), and llvm::ELF::SHT_NOBITS.
void MCSectionELF::PrintSwitchToSection | ( | const MCAsmInfo & | MAI, |
raw_ostream & | OS, | ||
const MCExpr * | Subsection | ||
) | const [override, virtual] |
Implements llvm::MCSection.
Definition at line 58 of file MCSectionELF.cpp.
References llvm::MCAsmInfo::getCommentString(), llvm::MCSymbol::getName(), getSectionName(), printName(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXCLUDE, llvm::ELF::SHF_EXECINSTR, llvm::ELF::SHF_GROUP, llvm::ELF::SHF_MERGE, llvm::ELF::SHF_STRINGS, llvm::ELF::SHF_TLS, llvm::ELF::SHF_WRITE, ShouldOmitSectionDirective(), llvm::ELF::SHT_FINI_ARRAY, llvm::ELF::SHT_INIT_ARRAY, llvm::ELF::SHT_NOBITS, llvm::ELF::SHT_NOTE, llvm::ELF::SHT_PREINIT_ARRAY, llvm::ELF::SHT_PROGBITS, llvm::MCAsmInfo::usesSunStyleELFSectionSwitchSyntax(), llvm::ELF::XCORE_SHF_CP_SECTION, and llvm::ELF::XCORE_SHF_DP_SECTION.
bool MCSectionELF::ShouldOmitSectionDirective | ( | StringRef | Name, |
const MCAsmInfo & | MAI | ||
) | const |
ShouldOmitSectionDirective - Decides whether a '.section' directive should be printed before the section name
Definition at line 24 of file MCSectionELF.cpp.
References llvm::MCAsmInfo::usesELFSectionDirectiveForBSS().
Referenced by PrintSwitchToSection().
bool MCSectionELF::UseCodeAlign | ( | ) | const [override, virtual] |
Implements llvm::MCSection.
Definition at line 153 of file MCSectionELF.cpp.
References getFlags(), and llvm::ELF::SHF_EXECINSTR.
friend class MCContext [friend] |
Definition at line 50 of file MCSectionELF.h.