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

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_MC_MCOBJECTFILEINFO_H

14#define LLVM_MC_MCOBJECTFILEINFO_H

15

22

23#include

24#include

25

26namespace llvm {

29

31protected:

32

33

35

36

37

38

40

41

42

43

44

46

47

49

50

52

53

55

56

58

59

61

62

63

64

65

67

68

69

71

72

74

75

76

77

79

80

81

83

84

85

99

100

102

103

104

105

106

112

113

123

124

127

129

131

132

135

136

139

140

142

144

145

147

151

152

153

154

155

157

158

160

161

162

163

165

166

168

169

171

172

174

175

176

177

179

180

182

183

185

186

189

190

192

193

199

200

201

202

203

204

205

207

208

209

211

228

229

238

239

243

244

248

249

250 std::array<MCSection *, binaryformat::Swift5ReflectionSectionKind::last>

252

253public:

254 void initMCObjectFileInfo(MCContext &MCCtx, bool PIC,

255 bool LargeCodeModel = false);

258

265

267

271

284 return getDwarfComdatSection(".debug_info", Hash);

285 }

308

324 return getDwarfComdatSection(".debug_types", Hash);

325 }

347

357

361

365

367

369

371

373

375

377

378 MCSection *getLLVMStatsSection() const;

379

381

382

396

397

434

435

444

445

449

450

452

455

457

458

461 return ReflSectionKind !=

464 : nullptr;

465 }

466

467private:

468 bool PositionIndependent = false;

470

471 void initMachOMCObjectFileInfo(const Triple &T);

472 void initELFMCObjectFileInfo(const Triple &T, bool Large);

473 void initGOFFMCObjectFileInfo(const Triple &T);

474 void initCOFFMCObjectFileInfo(const Triple &T);

475 void initSPIRVMCObjectFileInfo(const Triple &T);

476 void initWasmMCObjectFileInfo(const Triple &T);

477 void initXCOFFMCObjectFileInfo(const Triple &T);

478 void initDXContainerObjectFileInfo(const Triple &T);

479 MCSection *getDwarfComdatSection(const char *Name, uint64_t Hash) const;

480};

481

482}

483

484#endif

PassInstrumentationCallbacks PIC

This file contains data-structure definitions and constants to support unwinding based on ....

Defines the llvm::VersionTuple class, which represents a version in the form major[....

Context object for machine code objects.

Definition MCObjectFileInfo.h:30

MCSection * getTLSBSSSection() const

Definition MCObjectFileInfo.h:360

MCSection * getDataRelROSection() const

Definition MCObjectFileInfo.h:383

MCSection * NonLazySymbolPointerSection

Definition MCObjectFileInfo.h:225

MCSection * TLSBSSSection

Section directive for Thread Local uninitialized data.

Definition MCObjectFileInfo.h:164

MCSection * CallGraphSection

Section containing call graph metadata.

Definition MCObjectFileInfo.h:73

MCSection * DwarfDebugNamesSection

Accelerator table sections.

Definition MCObjectFileInfo.h:107

MCSection * DwarfAddrSection

Definition MCObjectFileInfo.h:126

const MCSection * TLSThreadInitSection

Section for thread local data initialization functions.

Definition MCObjectFileInfo.h:210

MCSection * GEHContSection

Definition MCObjectFileInfo.h:234

MCSection * DwarfStrOffSection

The DWARF v5 string offset and address table sections.

Definition MCObjectFileInfo.h:125

MCSection * getDwarfLoclistsSection() const

Definition MCObjectFileInfo.h:305

MCSection * DwarfARangesSection

Definition MCObjectFileInfo.h:95

MCSection * getDwarfAccelTypesSection() const

Definition MCObjectFileInfo.h:319

MCSection * DwarfStrSection

Definition MCObjectFileInfo.h:93

MCSection * MergeableConst16Section

Definition MCObjectFileInfo.h:197

const MCSection * getMergeableConst4Section() const

Definition MCObjectFileInfo.h:384

MCSection * ADASection

Definition MCObjectFileInfo.h:241

MCSection * COFFGlobalTypeHashesSection

Definition MCObjectFileInfo.h:150

const MCSection * getMergeableConst16Section() const

Definition MCObjectFileInfo.h:390

MCSection * SFrameSection

SFrame section.

Definition MCObjectFileInfo.h:181

MCSection * DwarfLocDWOSection

Definition MCObjectFileInfo.h:119

const MCSection * getMergeableConst32Section() const

Definition MCObjectFileInfo.h:393

MCSection * MergeableConst4Section

Definition MCObjectFileInfo.h:195

MCSection * DwarfMacinfoSection

Definition MCObjectFileInfo.h:97

MCSection * DwarfPubNamesSection

Definition MCObjectFileInfo.h:101

MCSection * DwarfGnuPubTypesSection

Section for newer gnu pubtypes.

Definition MCObjectFileInfo.h:143

MCSection * DwarfCUIndexSection

Definition MCObjectFileInfo.h:137

MCSection * TextSection

Section directive for standard text.

Definition MCObjectFileInfo.h:54

MCSection * getDwarfGnuPubNamesSection() const

Definition MCObjectFileInfo.h:291

MCSection * ConstDataCoalSection

Definition MCObjectFileInfo.h:218

MCSection * getDwarfStrOffDWOSection() const

Definition MCObjectFileInfo.h:331

MCSection * LLVMStatsSection

Definition MCObjectFileInfo.h:191

MCSection * ConstTextCoalSection

Definition MCObjectFileInfo.h:215

MCSection * getAddrSigSection() const

Definition MCObjectFileInfo.h:433

MCSection * TLSDataSection

Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.

Definition MCObjectFileInfo.h:159

const MCSection * getTLSTLVSection() const

Definition MCObjectFileInfo.h:398

MCSection * MergeableConst8Section

Definition MCObjectFileInfo.h:196

MCSection * AddrSigSection

Definition MCObjectFileInfo.h:227

MCSection * getEHFrameSection() const

Definition MCObjectFileInfo.h:453

MCSection * getDwarfRangesSection() const

Definition MCObjectFileInfo.h:303

MCSection * IDRLSection

Definition MCObjectFileInfo.h:242

MCSection * getADASection() const

Definition MCObjectFileInfo.h:447

MCSection * getPDataSection() const

Definition MCObjectFileInfo.h:437

MCSection * DwarfInfoSection

Definition MCObjectFileInfo.h:87

MCSection * ThreadLocalPointerSection

Definition MCObjectFileInfo.h:226

MCSection * getDwarfInfoSection(uint64_t Hash) const

Definition MCObjectFileInfo.h:283

MCSection * getDwarfAccelNamespaceSection() const

Definition MCObjectFileInfo.h:316

MCSection * LSDASection

If exception handling is supported by the target, this is the section the Language Specific Data Area...

Definition MCObjectFileInfo.h:70

MCSection * getFaultMapSection() const

Definition MCObjectFileInfo.h:363

MCSection * CompactUnwindSection

If exception handling is supported by the target and the target can support a compact representation ...

Definition MCObjectFileInfo.h:78

MCSection * getDwarfLineDWOSection() const

Definition MCObjectFileInfo.h:329

MCSection * COFFDebugSymbolsSection

Definition MCObjectFileInfo.h:148

MCSection * GFIDsSection

Definition MCObjectFileInfo.h:235

MCSection * getDwarfStrOffSection() const

Definition MCObjectFileInfo.h:332

MCSection * getDwarfInfoDWOSection() const

Definition MCObjectFileInfo.h:322

const MCSection * getConstTextCoalSection() const

Definition MCObjectFileInfo.h:405

MCSection * getGEHContSection() const

Definition MCObjectFileInfo.h:440

MCSection * DwarfStrDWOSection

Definition MCObjectFileInfo.h:117

std::array< MCSection *, binaryformat::Swift5ReflectionSectionKind::last > Swift5ReflectionSections

Definition MCObjectFileInfo.h:251

MCSection * getDwarfTypesDWOSection() const

Definition MCObjectFileInfo.h:326

MCSection * DwarfLoclistsSection

The DWARF v5 locations list section.

Definition MCObjectFileInfo.h:130

MCSection * getDwarfPubNamesSection() const

Definition MCObjectFileInfo.h:289

bool getSupportsCompactUnwindWithoutEHFrame() const

Definition MCObjectFileInfo.h:259

MCSection * getDwarfMacroSection() const

Definition MCObjectFileInfo.h:307

MCSection * ReadOnly16Section

Definition MCObjectFileInfo.h:247

MCSection * getSXDataSection() const

Definition MCObjectFileInfo.h:439

MCSection * getTextCoalSection() const

Definition MCObjectFileInfo.h:404

MCSection * DwarfLocSection

Definition MCObjectFileInfo.h:94

MCSection * PseudoProbeSection

Section for pseudo probe information used by AutoFDO.

Definition MCObjectFileInfo.h:187

MCSection * getDwarfStrSection() const

Definition MCObjectFileInfo.h:300

MCSection * getDwarfLineStrSection() const

Definition MCObjectFileInfo.h:287

unsigned getCompactUnwindDwarfEHFrameOnly() const

Definition MCObjectFileInfo.h:268

MCSection * FourByteConstantSection

Definition MCObjectFileInfo.h:221

MCSection * DwarfAccelNamesSection

Definition MCObjectFileInfo.h:108

MCSection * getGFIDsSection() const

Definition MCObjectFileInfo.h:441

MCSection * ReadOnly8Section

Definition MCObjectFileInfo.h:246

MCSection * getDwarfLoclistsDWOSection() const

Definition MCObjectFileInfo.h:337

const MCSection * getConstDataSection() const

Definition MCObjectFileInfo.h:408

const MCSection * getDataCoalSection() const

Definition MCObjectFileInfo.h:409

MCSection * DwarfRnglistsSection

The DWARF v5 range list section.

Definition MCObjectFileInfo.h:128

const MCSection * DwarfDebugInlineSection

Definition MCObjectFileInfo.h:92

MCSection * XDataSection

Definition MCObjectFileInfo.h:232

MCSection * getBSSSection() const

Definition MCObjectFileInfo.h:276

MCSection * DataBSSSection

Definition MCObjectFileInfo.h:220

MCSection * GIATsSection

Definition MCObjectFileInfo.h:236

MCSection * DwarfAbbrevDWOSection

Definition MCObjectFileInfo.h:116

MCSection * COFFDebugTypesSection

Definition MCObjectFileInfo.h:149

MCSection * getDwarfTUIndexSection() const

Definition MCObjectFileInfo.h:345

MCSection * getDwarfDebugNamesSection() const

Definition MCObjectFileInfo.h:309

MCSection * getRemarksSection() const

Definition MCObjectFileInfo.h:364

const MCSection * getConstDataCoalSection() const

Definition MCObjectFileInfo.h:410

MCSection * getDwarfMacinfoDWOSection() const

Definition MCObjectFileInfo.h:341

MCSection * LazySymbolPointerSection

Definition MCObjectFileInfo.h:224

MCSection * getDrectveSection() const

Definition MCObjectFileInfo.h:436

MCSection * getSwift5ReflectionSection(llvm::binaryformat::Swift5ReflectionSectionKind ReflSectionKind)

Definition MCObjectFileInfo.h:459

MCSection * RemarksSection

Remarks section.

Definition MCObjectFileInfo.h:173

MCSection * PDataSection

Definition MCObjectFileInfo.h:231

MCSection * getLazySymbolPointerSection() const

Definition MCObjectFileInfo.h:424

MCSection * getDwarfRnglistsSection() const

Definition MCObjectFileInfo.h:304

MCSection * TextCoalSection

Definition MCObjectFileInfo.h:214

MCSection * getDwarfAddrSection() const

Definition MCObjectFileInfo.h:333

MCSection * PseudoProbeDescSection

Definition MCObjectFileInfo.h:188

MCSection * DwarfPubTypesSection

Definition MCObjectFileInfo.h:91

MCSection * DwarfRangesSection

Definition MCObjectFileInfo.h:96

MCSection * DwarfStrOffDWOSection

Definition MCObjectFileInfo.h:120

MCSection * TLSExtraDataSection

Extra TLS Variable Data section.

Definition MCObjectFileInfo.h:156

MCSection * getDwarfLineSection() const

Definition MCObjectFileInfo.h:286

MCSection * getDwarfInfoSection() const

Definition MCObjectFileInfo.h:282

MCSection * getDwarfFrameSection() const

Definition MCObjectFileInfo.h:288

MCSection * DataRelROSection

Definition MCObjectFileInfo.h:194

MCSection * getTLSExtraDataSection() const

Definition MCObjectFileInfo.h:358

const MCSection * getEightByteConstantSection() const

Definition MCObjectFileInfo.h:418

MCSection * EHFrameSection

EH frame section.

Definition MCObjectFileInfo.h:178

bool OmitDwarfIfHaveCompactUnwind

OmitDwarfIfHaveCompactUnwind - True if the target object file supports having some functions with com...

Definition MCObjectFileInfo.h:39

MCSection * CStringSection

Definition MCObjectFileInfo.h:212

const MCSection * getTLSThreadInitSection() const

Definition MCObjectFileInfo.h:399

MCSection * DrectveSection

COFF specific sections.

Definition MCObjectFileInfo.h:230

MCSection * getPPA2ListSection() const

Definition MCObjectFileInfo.h:446

MCSection * FaultMapSection

FaultMap section.

Definition MCObjectFileInfo.h:170

MCSection * DwarfAccelObjCSection

Definition MCObjectFileInfo.h:109

MCSection * TLSTLVSection

Section for thread local structure information.

Definition MCObjectFileInfo.h:206

MCSection * getLSDASection() const

Definition MCObjectFileInfo.h:278

MCSection * DwarfSwiftASTSection

Definition MCObjectFileInfo.h:146

MCSection * getDwarfPubTypesSection() const

Definition MCObjectFileInfo.h:290

bool isPositionIndependent() const

Definition MCObjectFileInfo.h:456

MCSection * DwarfMacroSection

Definition MCObjectFileInfo.h:98

unsigned getFDEEncoding() const

Definition MCObjectFileInfo.h:266

const MCSection * getDwarfDebugInlineSection() const

Definition MCObjectFileInfo.h:297

MCSection * getDwarfTypesSection(uint64_t Hash) const

Definition MCObjectFileInfo.h:323

MCSection * getDwarfGnuPubTypesSection() const

Definition MCObjectFileInfo.h:294

MCSection * DataCoalSection

Definition MCObjectFileInfo.h:217

MCSection * DwarfFrameSection

Definition MCObjectFileInfo.h:90

MCSection * SXDataSection

Definition MCObjectFileInfo.h:233

MCSection * UStringSection

Definition MCObjectFileInfo.h:213

const MCSection * getMergeableConst8Section() const

Definition MCObjectFileInfo.h:387

MCSection * DwarfRnglistsDWOSection

The DWARF v5 range and location list sections for fission.

Definition MCObjectFileInfo.h:133

MCSection * getDwarfStrDWOSection() const

Definition MCObjectFileInfo.h:328

MCSection * ImportCallSection

If import call optimization is supported by the target, this is the section to emit import call data ...

Definition MCObjectFileInfo.h:82

MCSection * MergeableConst32Section

Definition MCObjectFileInfo.h:198

MCSection * SixteenByteConstantSection

Definition MCObjectFileInfo.h:223

MCSection * getStackMapSection() const

Definition MCObjectFileInfo.h:362

virtual ~MCObjectFileInfo()

MCSection * getDwarfAccelNamesSection() const

Definition MCObjectFileInfo.h:312

MCSection * getReadOnlySection() const

Definition MCObjectFileInfo.h:277

MCSection * getThreadLocalPointerSection() const

Definition MCObjectFileInfo.h:430

MCSection * DataCommonSection

Definition MCObjectFileInfo.h:219

MCSection * getDwarfAbbrevDWOSection() const

Definition MCObjectFileInfo.h:327

MCSection * getDwarfRnglistsDWOSection() const

Definition MCObjectFileInfo.h:334

const MCSection * getFourByteConstantSection() const

Definition MCObjectFileInfo.h:415

std::optional< sframe::ABI > SFrameABIArch

SFrame ABI architecture byte.

Definition MCObjectFileInfo.h:51

MCSection * DwarfLineStrSection

Definition MCObjectFileInfo.h:89

bool SupportsCompactUnwindWithoutEHFrame

True if the target object file supports emitting a compact unwind section without an associated EH fr...

Definition MCObjectFileInfo.h:34

MCSection * ReadOnlySection

Section that is readonly and can contain arbitrary initialized data.

Definition MCObjectFileInfo.h:66

MCSection * getDwarfAbbrevSection() const

Definition MCObjectFileInfo.h:281

MCSection * getDwarfSwiftASTSection() const

Definition MCObjectFileInfo.h:346

MCSection * getIDRLSection() const

Definition MCObjectFileInfo.h:448

MCSection * DwarfLineDWOSection

Definition MCObjectFileInfo.h:118

MCSection * getCOFFDebugSymbolsSection() const

Definition MCObjectFileInfo.h:348

MCSection * DwarfAbbrevSection

Definition MCObjectFileInfo.h:86

MCSection * getXDataSection() const

Definition MCObjectFileInfo.h:438

bool getOmitDwarfIfHaveCompactUnwind() const

Definition MCObjectFileInfo.h:262

MCSection * getGLJMPSection() const

Definition MCObjectFileInfo.h:443

MCSection * getTOCBaseSection() const

Definition MCObjectFileInfo.h:451

const MCSection * getCStringSection() const

Definition MCObjectFileInfo.h:402

MCSection * DwarfLineSection

Definition MCObjectFileInfo.h:88

const MCSection * getTLSDataSection() const

Definition MCObjectFileInfo.h:359

MCSection * TOCBaseSection

Definition MCObjectFileInfo.h:245

unsigned FDECFIEncoding

FDE CFI encoding.

Definition MCObjectFileInfo.h:45

MCSection * getCOFFDebugTypesSection() const

Definition MCObjectFileInfo.h:351

std::optional< sframe::ABI > getSFrameABIArch() const

Definition MCObjectFileInfo.h:272

MCSection * getGIATsSection() const

Definition MCObjectFileInfo.h:442

MCSection * getSFrameSection() const

Definition MCObjectFileInfo.h:454

MCSection * getDwarfCUIndexSection() const

Definition MCObjectFileInfo.h:344

MCSection * getImportCallSection() const

Definition MCObjectFileInfo.h:279

MCSection * DwarfTUIndexSection

Definition MCObjectFileInfo.h:138

MCSection * getDwarfMacinfoSection() const

Definition MCObjectFileInfo.h:306

MCSection * getDwarfLocDWOSection() const

Definition MCObjectFileInfo.h:330

MCSection * DwarfLoclistsDWOSection

Definition MCObjectFileInfo.h:134

MCSection * getDwarfARangesSection() const

Definition MCObjectFileInfo.h:302

MCSection * getDwarfAccelObjCSection() const

Definition MCObjectFileInfo.h:315

MCSection * DwarfInfoDWOSection

Definition MCObjectFileInfo.h:114

MCSection * BSSSection

Section that is default initialized to zero.

Definition MCObjectFileInfo.h:60

MCSection * getNonLazySymbolPointerSection() const

Definition MCObjectFileInfo.h:427

const MCSection * getSixteenByteConstantSection() const

Definition MCObjectFileInfo.h:421

MCSection * PPA2ListSection

Definition MCObjectFileInfo.h:240

MCSection * getDwarfLocSection() const

Definition MCObjectFileInfo.h:301

virtual unsigned getTextSectionAlignment() const

Definition MCObjectFileInfo.h:273

MCSection * getDataBSSSection() const

Definition MCObjectFileInfo.h:414

MCSection * EightByteConstantSection

Definition MCObjectFileInfo.h:222

MCSection * StackSizesSection

Section containing metadata on function stack sizes.

Definition MCObjectFileInfo.h:184

unsigned CompactUnwindDwarfEHFrameOnly

Compact unwind encoding indicating that we should emit only an EH frame.

Definition MCObjectFileInfo.h:48

const MCSection * getDataCommonSection() const

Definition MCObjectFileInfo.h:413

MCSection * getTextSection() const

Definition MCObjectFileInfo.h:274

MCSection * DwarfTypesDWOSection

Definition MCObjectFileInfo.h:115

MCSection * GLJMPSection

Definition MCObjectFileInfo.h:237

MCSection * getCOFFGlobalTypeHashesSection() const

Definition MCObjectFileInfo.h:354

MCSection * DwarfGnuPubNamesSection

Section for newer gnu pubnames.

Definition MCObjectFileInfo.h:141

MCSection * ConstDataSection

Definition MCObjectFileInfo.h:216

MCSection * StackMapSection

StackMap section.

Definition MCObjectFileInfo.h:167

const MCSection * getUStringSection() const

Definition MCObjectFileInfo.h:403

MCSection * DwarfMacroDWOSection

Definition MCObjectFileInfo.h:122

MCSection * getDwarfMacroDWOSection() const

Definition MCObjectFileInfo.h:340

MCSection * DwarfMacinfoDWOSection

Definition MCObjectFileInfo.h:121

MCContext & getContext() const

Definition MCObjectFileInfo.h:257

MCSection * DwarfAccelNamespaceSection

Definition MCObjectFileInfo.h:110

MCSection * getDataSection() const

Definition MCObjectFileInfo.h:275

MCSection * DwarfAccelTypesSection

Definition MCObjectFileInfo.h:111

MCSection * getCompactUnwindSection() const

Definition MCObjectFileInfo.h:280

MCSection * DataSection

Section directive for standard data.

Definition MCObjectFileInfo.h:57

Instances of this class represent a uniqued identifier for a section in the current translation unit.

StringRef - Represent a constant reference to a string, i.e.

Triple - Helper class for working with autoconf configuration names.

Swift5ReflectionSectionKind

This is an optimization pass for GlobalISel generic memory operations.