13#ifndef LLVM_MC_MCSECTION_H
14#define LLVM_MC_MCSECTION_H
29class MCObjectStreamer;
93 unsigned BundleLockNestingDepth = 0;
97 bool BundleGroupBeforeFirstInst : 1;
100 bool HasInstructions : 1;
104 bool IsRegistered : 1;
151 if (Alignment < MinAlignment)
152 Alignment = MinAlignment;
163 return BundleGroupBeforeFirstInst;
166 BundleGroupBeforeFirstInst = IsFirst;
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This file defines the SmallVector class.
This class is intended to be used as a base class for asm properties and features specific to the tar...
Context object for machine code objects.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
void setAlignment(Align Value)
const MCDummyFragment & getDummyFragment() const
unsigned getOrdinal() const
virtual StringRef getVirtualSectionKind() const
void ensureMinAlignment(Align MinAlignment)
Makes sure that Alignment is at least MinAlignment.
SectionVariant getVariant() const
MCSymbol * getEndSymbol(MCContext &Ctx)
void setBundleLockState(BundleLockStateType NewState)
static constexpr unsigned NonUniqueID
const MCSymbol * getBeginSymbol() const
bool hasInstructions() const
bool isRegistered() const
void setHasInstructions(bool Value)
void setBeginSymbol(MCSymbol *Sym)
MCSection(const MCSection &)=delete
bool isBundleGroupBeforeFirstInst() const
void setOrdinal(unsigned Value)
bool isVirtualSection() const
Check whether this section is "virtual", that is has no actual object file contents.
virtual bool useCodeAlign() const =0
Return true if a .align directive should use "optimized nops" to fill instead of 0s.
bool isBundleLocked() const
MCDummyFragment & getDummyFragment()
MCSection & operator=(const MCSection &)=delete
StringRef getName() const
BundleLockStateType
Express the state of bundle locked groups while emitting code.
FragList * curFragList() const
MCSymbol * getBeginSymbol()
BundleLockStateType getBundleLockState() const
void setHasLayout(bool Value)
void setBundleGroupBeforeFirstInst(bool IsFirst)
void setIsRegistered(bool Value)
virtual void printSwitchToSection(const MCAsmInfo &MAI, const Triple &T, raw_ostream &OS, uint32_t Subsection) const =0
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.
MCFragment & operator*() const
bool operator==(const iterator &O) const
bool operator!=(const iterator &O) const