14 #ifndef LLVM_MC_MCSECTION_H
15 #define LLVM_MC_MCSECTION_H
69 void operator=(
const MCSection &) =
delete;
74 unsigned Alignment = 1;
84 unsigned BundleLockNestingDepth = 0;
88 unsigned BundleGroupBeforeFirstInst : 1;
91 unsigned HasInstructions : 1;
93 unsigned IsRegistered : 1;
138 return BundleGroupBeforeFirstInst;
141 BundleGroupBeforeFirstInst = IsFirst;
180 const MCExpr *Subsection)
const = 0;
Instances of this class represent a uniqued identifier for a section in the current translation unit...
bool hasInstructions() const
void removeNodeFromList(MCFragment *)
static NodeTy * createNode(const NodeTy &V)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
SectionVariant getVariant() const
void setLayoutOrder(unsigned Value)
void setAlignment(unsigned Value)
void setBundleLockState(BundleLockStateType NewState)
MCSection::reverse_iterator rbegin()
FragmentListType::const_iterator const_iterator
MCSection::const_iterator end() const
unsigned getAlignment() const
BundleLockStateType
Express the state of bundle locked groups while emitting code.
void setHasInstructions(bool Value)
FragmentListType::const_reverse_iterator const_reverse_iterator
const MCSection::FragmentListType & getFragmentList() const
Base class for the full range of assembler expressions which are needed for parsing.
const MCSymbol * getBeginSymbol() const
MCSection::reverse_iterator rend()
MCSymbol * getEndSymbol(MCContext &Ctx)
Context object for machine code objects.
MCSection::iterator end()
static void deleteNode(NodeTy *V)
This class is intended to be used as a base class for asm properties and features specific to the tar...
FragmentListType::iterator iterator
MCSection::const_reverse_iterator rbegin() const
MCSection::const_reverse_iterator rend() const
FragmentListType::reverse_iterator reverse_iterator
SectionKind - This is a simple POD value that classifies the properties of a section.
unsigned getOrdinal() const
void setIsRegistered(bool Value)
virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS, const MCExpr *Subsection) const =0
bool isRegistered() const
virtual bool UseCodeAlign() const =0
Return true if a .align directive should use "optimized nops" to fill instead of 0s.
ilist_node_traits - A fragment for template traits for intrusive list that provides default node rela...
MCSection::iterator begin()
void setOrdinal(unsigned Value)
SectionKind getKind() const
virtual bool isVirtualSection() const =0
Check whether this section is "virtual", that is has no actual object file contents.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
MCSymbol * getBeginSymbol()
std::reverse_iterator< iterator > reverse_iterator
unsigned getLayoutOrder() const
bool isBundleGroupBeforeFirstInst() const
BundleLockStateType getBundleLockState() const
void setBundleGroupBeforeFirstInst(bool IsFirst)
iplist< MCFragment > FragmentListType
MCSection::iterator getSubsectionInsertionPoint(unsigned Subsection)
LLVM Value Representation.
bool isBundleLocked() const
std::reverse_iterator< const_iterator > const_reverse_iterator
This class implements an extremely fast bulk output stream that can only output to a stream...
void transferNodesFromList(ilist_node_traits &, ilist_iterator< MCFragment >, ilist_iterator< MCFragment >)
MCSection::FragmentListType & getFragmentList()
MCSection::const_iterator begin() const
void addNodeToList(MCFragment *)
void setBeginSymbol(MCSymbol *Sym)