Go to the documentation of this file.
13 #ifndef LLVM_MC_MCSECTION_H
14 #define LLVM_MC_MCSECTION_H
82 unsigned BundleLockNestingDepth = 0;
86 bool BundleGroupBeforeFirstInst : 1;
89 bool HasInstructions : 1;
91 bool IsRegistered : 1;
102 struct PendingLabel {
105 PendingLabel(
MCSymbol* Sym,
unsigned Subsection = 0)
106 : Sym(Sym), Subsection(Subsection) {}
153 return BundleGroupBeforeFirstInst;
156 BundleGroupBeforeFirstInst = IsFirst;
172 return &MCSection::Fragments;
190 const MCExpr *Subsection)
const = 0;
208 unsigned Subsection = 0);
217 #endif // LLVM_MC_MCSECTION_H
bool isBundleLocked() const
void setIsRegistered(bool Value)
This is an optimization pass for GlobalISel generic memory operations.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
virtual void printSwitchToSection(const MCAsmInfo &MAI, const Triple &T, raw_ostream &OS, const MCExpr *Subsection) const =0
void setBundleLockState(BundleLockStateType NewState)
Context object for machine code objects.
void addPendingLabel(MCSymbol *label, unsigned Subsection=0)
Add a pending label for the requested subsection.
This class is intended to be used as a base class for asm properties and features specific to the tar...
MCDummyFragment & getDummyFragment()
MCSymbol * getBeginSymbol()
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
unsigned getLayoutOrder() const
static FragmentListType MCSection::* getSublistAccess(MCFragment *)
Support for MCFragment::getNextNode().
Triple - Helper class for working with autoconf configuration names.
base_list_type::const_reverse_iterator const_reverse_iterator
BundleLockStateType getBundleLockState() const
MCSection::iterator getSubsectionInsertionPoint(unsigned Subsection)
MCSection(SectionVariant V, StringRef Name, SectionKind K, MCSymbol *Begin)
void setBundleGroupBeforeFirstInst(bool IsFirst)
MCSection::FragmentListType & getFragmentList()
void setLayoutOrder(unsigned Value)
This class implements an extremely fast bulk output stream that can only output to a stream.
const_iterator end() const
const MCSection::FragmentListType & getFragmentList() const
This struct is a compact representation of a valid (non-zero power of two) alignment.
SectionVariant getVariant() const
MCSymbol * getEndSymbol(MCContext &Ctx)
base_list_type::reverse_iterator reverse_iterator
base_list_type::iterator iterator
MCSection & operator=(const MCSection &)=delete
Use delete by default for iplist and ilist.
static constexpr unsigned NonUniqueID
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
virtual StringRef getVirtualSectionKind() const
BundleLockStateType
Express the state of bundle locked groups while emitting code.
void setHasInstructions(bool Value)
unsigned getAlignment() const
const MCDummyFragment & getDummyFragment() const
StringRef - Represent a constant reference to a string, i.e.
virtual bool isVirtualSection() const =0
Check whether this section is "virtual", that is has no actual object file contents.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
StringRef getName() const
void setAlignment(Align Value)
bool isBundleGroupBeforeFirstInst() const
SectionKind - This is a simple POD value that classifies the properties of a section.
virtual bool useCodeAlign() const =0
Return true if a .align directive should use "optimized nops" to fill instead of 0s.
bool hasInstructions() const
Iterator for intrusive lists based on ilist_node.
void flushPendingLabels()
Associate all pending labels with empty data fragments.
const MCSymbol * getBeginSymbol() const
void setBeginSymbol(MCSymbol *Sym)
bool isRegistered() const
SectionKind getKind() const
const_iterator begin() const
static void deleteNode(NodeTy *V)
base_list_type::const_iterator const_iterator
unsigned getOrdinal() const
LLVM Value Representation.
Base class for the full range of assembler expressions which are needed for parsing.
void setOrdinal(unsigned Value)