LLVM  8.0.1
Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::MCSectionELF Class Referencefinal

This represents a section on linux, lots of unix variants and some bare metal systems. More...

#include "llvm/MC/MCSectionELF.h"

Inheritance diagram for llvm::MCSectionELF:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCSectionELF:
Collaboration graph
[legend]

Public Member Functions

 ~MCSectionELF ()
 
bool ShouldOmitSectionDirective (StringRef Name, const MCAsmInfo &MAI) const
 Decides whether a '.section' directive should be printed before the section name. More...
 
StringRef getSectionName () const
 
unsigned getType () const
 
unsigned getFlags () const
 
unsigned getEntrySize () const
 
void setFlags (unsigned F)
 
const MCSymbolELFgetGroup () const
 
void PrintSwitchToSection (const MCAsmInfo &MAI, const Triple &T, raw_ostream &OS, const MCExpr *Subsection) const override
 
bool UseCodeAlign () const override
 Return true if a .align directive should use "optimized nops" to fill instead of 0s. More...
 
bool isVirtualSection () const override
 Check whether this section is "virtual", that is has no actual object file contents. More...
 
bool isUnique () const
 
unsigned getUniqueID () const
 
const MCSectiongetAssociatedSection () const
 
const MCSymbolgetAssociatedSymbol () const
 
- Public Member Functions inherited from llvm::MCSection
 MCSection (const MCSection &)=delete
 
MCSectionoperator= (const MCSection &)=delete
 
SectionKind getKind () const
 
SectionVariant getVariant () const
 
MCSymbolgetBeginSymbol ()
 
const MCSymbolgetBeginSymbol () const
 
void setBeginSymbol (MCSymbol *Sym)
 
MCSymbolgetEndSymbol (MCContext &Ctx)
 
bool hasEnded () const
 
unsigned getAlignment () const
 
void setAlignment (unsigned Value)
 
unsigned getOrdinal () const
 
void setOrdinal (unsigned Value)
 
unsigned getLayoutOrder () const
 
void setLayoutOrder (unsigned Value)
 
BundleLockStateType getBundleLockState () const
 
void setBundleLockState (BundleLockStateType NewState)
 
bool isBundleLocked () const
 
bool isBundleGroupBeforeFirstInst () const
 
void setBundleGroupBeforeFirstInst (bool IsFirst)
 
bool hasInstructions () const
 
void setHasInstructions (bool Value)
 
bool hasData () const
 
void setHasData (bool Value)
 
bool isRegistered () const
 
void setIsRegistered (bool Value)
 
MCSection::FragmentListTypegetFragmentList ()
 
const MCSection::FragmentListTypegetFragmentList () const
 
const MCDummyFragmentgetDummyFragment () const
 
MCDummyFragmentgetDummyFragment ()
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
MCSection::iterator getSubsectionInsertionPoint (unsigned Subsection)
 
void dump () const
 

Static Public Member Functions

static bool classof (const MCSection *S)
 
- Static Public Member Functions inherited from llvm::MCSection
static FragmentListType MCSection::* getSublistAccess (MCFragment *)
 Support for MCFragment::getNextNode(). More...
 

Friends

class MCContext
 

Additional Inherited Members

- Public Types inherited from llvm::MCSection
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
 
- Protected Member Functions inherited from llvm::MCSection
 MCSection (SectionVariant V, SectionKind K, MCSymbol *Begin)
 
 ~MCSection ()
 
- Protected Attributes inherited from llvm::MCSection
SectionVariant Variant
 
SectionKind Kind
 

Detailed Description

This represents a section on linux, lots of unix variants and some bare metal systems.

Definition at line 28 of file MCSectionELF.h.

Constructor & Destructor Documentation

◆ ~MCSectionELF()

MCSectionELF::~MCSectionELF ( )
default

Member Function Documentation

◆ classof()

static bool llvm::MCSectionELF::classof ( const MCSection S)
inlinestatic

Definition at line 92 of file MCSectionELF.h.

References llvm::MCSection::getVariant(), and llvm::MCSection::SV_ELF.

◆ getAssociatedSection()

const MCSection* llvm::MCSectionELF::getAssociatedSection ( ) const
inline

Definition at line 89 of file MCSectionELF.h.

References llvm::MCSymbol::getSection().

Referenced by isWeak().

◆ getAssociatedSymbol()

const MCSymbol* llvm::MCSectionELF::getAssociatedSymbol ( ) const
inline

◆ getEntrySize()

unsigned llvm::MCSectionELF::getEntrySize ( ) const
inline

Definition at line 76 of file MCSectionELF.h.

Referenced by isWeak().

◆ getFlags()

unsigned llvm::MCSectionELF::getFlags ( ) const
inline

Definition at line 75 of file MCSectionELF.h.

Referenced by llvm::MCELFStreamer::EmitLabel(), isWeak(), and UseCodeAlign().

◆ getGroup()

const MCSymbolELF* llvm::MCSectionELF::getGroup ( ) const
inline

◆ getSectionName()

StringRef llvm::MCSectionELF::getSectionName ( ) const
inline

◆ getType()

unsigned llvm::MCSectionELF::getType ( ) const
inline

Definition at line 74 of file MCSectionELF.h.

Referenced by isVirtualSection(), and isWeak().

◆ getUniqueID()

unsigned llvm::MCSectionELF::getUniqueID ( ) const
inline

◆ isUnique()

bool llvm::MCSectionELF::isUnique ( ) const
inline

Definition at line 86 of file MCSectionELF.h.

Referenced by PrintSwitchToSection(), and ShouldOmitSectionDirective().

◆ isVirtualSection()

bool MCSectionELF::isVirtualSection ( ) const
overridevirtual

Check whether this section is "virtual", that is has no actual object file contents.

Implements llvm::MCSection.

Definition at line 195 of file MCSectionELF.cpp.

References getType(), and llvm::ELF::SHT_NOBITS.

Referenced by getGroup().

◆ PrintSwitchToSection()

void MCSectionELF::PrintSwitchToSection ( const MCAsmInfo MAI,
const Triple T,
raw_ostream OS,
const MCExpr Subsection 
) const
overridevirtual

◆ setFlags()

void llvm::MCSectionELF::setFlags ( unsigned  F)
inline

Definition at line 77 of file MCSectionELF.h.

References F().

Referenced by isWeak().

◆ ShouldOmitSectionDirective()

bool MCSectionELF::ShouldOmitSectionDirective ( StringRef  Name,
const MCAsmInfo MAI 
) const

Decides whether a '.section' directive should be printed before the section name.

Definition at line 25 of file MCSectionELF.cpp.

References isUnique(), and llvm::MCAsmInfo::shouldOmitSectionDirective().

Referenced by PrintSwitchToSection().

◆ UseCodeAlign()

bool MCSectionELF::UseCodeAlign ( ) const
overridevirtual

Return true if a .align directive should use "optimized nops" to fill instead of 0s.

Implements llvm::MCSection.

Definition at line 191 of file MCSectionELF.cpp.

References getFlags(), and llvm::ELF::SHF_EXECINSTR.

Referenced by llvm::MipsTargetELFStreamer::finish(), and getGroup().

Friends And Related Function Documentation

◆ MCContext

friend class MCContext
friend

Definition at line 52 of file MCSectionELF.h.


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