LLVM: include/llvm/MC/MCSection.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_MC_MCSECTION_H

14#define LLVM_MC_MCSECTION_H

15

20#include

21#include

22

23namespace llvm {

24

25class MCAsmInfo;

26class MCAssembler;

27class MCContext;

28class MCExpr;

29class MCObjectStreamer;

31class raw_ostream;

32class Triple;

33

34

35

37public:

41

51 };

52

53

59

68 F = F->Next;

69 return *this;

70 }

71 };

72

76 };

77

78private:

79

80

84

86

87 unsigned Ordinal = 0;

88

89

91

92

93 unsigned BundleLockNestingDepth = 0;

94

95

96

97 bool BundleGroupBeforeFirstInst : 1;

98

99

100 bool HasInstructions : 1;

101

102 bool HasLayout : 1;

103

104 bool IsRegistered : 1;

105

106 bool IsText : 1;

107

108 bool IsVirtual : 1;

109

111

112

113

114

116

117protected:

118

121

125

126public:

129

131 bool isText() const { return IsText; }

132

134

138 }

141 Begin = Sym;

142 }

145

148

149

151 if (Alignment < MinAlignment)

152 Alignment = MinAlignment;

153 }

154

157

161

163 return BundleGroupBeforeFirstInst;

164 }

166 BundleGroupBeforeFirstInst = IsFirst;

167 }

168

171

174

177

180

184

185 void dump() const;

186

189 uint32_t Subsection) const = 0;

190

191

192

194

195

196

198

200};

201

202}

203

204#endif

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