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.