LLVM  16.0.0git
MCObjectFileInfo.h
Go to the documentation of this file.
1 //===-- llvm/MC/MCObjectFileInfo.h - Object File Info -----------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file describes common object file formats.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_MC_MCOBJECTFILEINFO_H
14 #define LLVM_MC_MCOBJECTFILEINFO_H
15 
16 #include "llvm/ADT/Optional.h"
17 #include "llvm/ADT/Triple.h"
19 #include "llvm/MC/MCSection.h"
21 
22 #include <array>
23 
24 namespace llvm {
25 class MCContext;
26 class MCSection;
27 
29 protected:
30  /// True if .comm supports alignment. This is a hack for as long as we
31  /// support 10.4 Tiger, whose assembler doesn't support alignment on comm.
33 
34  /// True if target object file supports a weak_definition of constant 0 for an
35  /// omitted EH frame.
37 
38  /// True if the target object file supports emitting a compact unwind section
39  /// without an associated EH frame section.
41 
42  /// OmitDwarfIfHaveCompactUnwind - True if the target object file
43  /// supports having some functions with compact unwind and other with
44  /// dwarf unwind.
46 
47  /// FDE CFI encoding. Controls the encoding of the begin label in the
48  /// .eh_frame section. Unlike the LSDA encoding, personality encoding, and
49  /// type encodings, this is something that the assembler just "knows" about
50  /// its target
51  unsigned FDECFIEncoding = 0;
52 
53  /// Compact unwind encoding indicating that we should emit only an EH frame.
55 
56  /// Section directive for standard text.
57  MCSection *TextSection = nullptr;
58 
59  /// Section directive for standard data.
60  MCSection *DataSection = nullptr;
61 
62  /// Section that is default initialized to zero.
63  MCSection *BSSSection = nullptr;
64 
65  /// Section that is readonly and can contain arbitrary initialized data.
66  /// Targets are not required to have a readonly section. If they don't,
67  /// various bits of code will fall back to using the data section for
68  /// constants.
70 
71  /// If exception handling is supported by the target, this is the section the
72  /// Language Specific Data Area information is emitted to.
73  MCSection *LSDASection = nullptr;
74 
75  /// If exception handling is supported by the target and the target can
76  /// support a compact representation of the CIE and FDE, this is the section
77  /// to emit them into.
79 
80  // Dwarf sections for debug info. If a target supports debug info, these must
81  // be set.
95  // The pubnames section is no longer generated by default. The generation
96  // can be enabled by a compiler flag.
98 
99  /// Accelerator table sections. DwarfDebugNamesSection is the DWARF v5
100  /// accelerator table, while DwarfAccelNamesSection, DwarfAccelObjCSection,
101  /// DwarfAccelNamespaceSection, DwarfAccelTypesSection are pre-DWARF v5
102  /// extensions.
108 
109  // These are used for the Fission separate debug information files.
119 
120  /// The DWARF v5 string offset and address table sections.
123  /// The DWARF v5 range list section.
125  /// The DWARF v5 locations list section.
127 
128  /// The DWARF v5 range and location list sections for fission.
131 
132  // These are for Fission DWP files.
135 
136  /// Section for newer gnu pubnames.
138  /// Section for newer gnu pubtypes.
140 
141  // Section for Swift AST
143 
147 
148  /// Extra TLS Variable Data section.
149  ///
150  /// If the target needs to put additional information for a TLS variable,
151  /// it'll go here.
153 
154  /// Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.
155  MCSection *TLSDataSection = nullptr; // Defaults to ".tdata".
156 
157  /// Section directive for Thread Local uninitialized data.
158  ///
159  /// Null if this target doesn't support a BSS section. ELF and MachO only.
160  MCSection *TLSBSSSection = nullptr; // Defaults to ".tbss".
161 
162  /// StackMap section.
164 
165  /// FaultMap section.
167 
168  /// Remarks section.
170 
171  /// EH frame section.
172  ///
173  /// It is initialized on demand so it can be overwritten (with uniquing).
175 
176  /// Section containing metadata on function stack sizes.
178 
179  /// Section for pseudo probe information used by AutoFDO
182 
183  // ELF specific sections.
189 
190  // MachO specific sections.
191 
192  /// Section for thread local structure information.
193  ///
194  /// Contains the source code name of the variable, visibility and a pointer to
195  /// the initial value (.tdata or .tbss).
196  MCSection *TLSTLVSection = nullptr; // Defaults to ".tlv".
197 
198  /// Section for thread local data initialization functions.
199  // Defaults to ".thread_init_func".
200  const MCSection *TLSThreadInitSection = nullptr;
201 
218 
219  /// COFF specific sections.
228 
229  // GOFF specific sections.
230  MCSection *PPA1Section = nullptr;
231 
232  // XCOFF specific sections
236 
237  // Swift5 Reflection Data Sections
238  std::array<MCSection *, binaryformat::Swift5ReflectionSectionKind::last>
240 
241 public:
242  void initMCObjectFileInfo(MCContext &MCCtx, bool PIC,
243  bool LargeCodeModel = false);
244  virtual ~MCObjectFileInfo();
245  MCContext &getContext() const { return *Ctx; }
246 
249  }
252  }
255  }
256 
259  }
260 
261  unsigned getFDEEncoding() const { return FDECFIEncoding; }
262 
265  }
266 
267  virtual unsigned getTextSectionAlignment() const { return 4; }
268  MCSection *getTextSection() const { return TextSection; }
269  MCSection *getDataSection() const { return DataSection; }
270  MCSection *getBSSSection() const { return BSSSection; }
272  MCSection *getLSDASection() const { return LSDASection; }
277  return getDwarfComdatSection(".debug_info", Hash);
278  }
286  }
289  }
292  }
301 
303  return DwarfDebugNamesSection;
304  }
306  return DwarfAccelNamesSection;
307  }
311  }
313  return DwarfAccelTypesSection;
314  }
317  return getDwarfComdatSection(".debug_types", Hash);
318  }
329  }
332  }
335  return DwarfMacinfoDWOSection;
336  }
340 
343  }
345  return COFFDebugTypesSection;
346  }
349  }
350 
352  const MCSection *getTLSDataSection() const { return TLSDataSection; }
354 
358 
359  MCSection *getStackSizesSection(const MCSection &TextSec) const;
360 
361  MCSection *getBBAddrMapSection(const MCSection &TextSec) const;
362 
363  MCSection *getKCFITrapSection(const MCSection &TextSec) const;
364 
365  MCSection *getPseudoProbeSection(const MCSection *TextSec) const;
366 
368 
369  MCSection *getPCSection(StringRef Name, const MCSection *TextSec) const;
370 
371  // ELF specific sections.
374  return MergeableConst4Section;
375  }
377  return MergeableConst8Section;
378  }
381  }
384  }
385 
386  // MachO specific sections.
387  const MCSection *getTLSTLVSection() const { return TLSTLVSection; }
389  return TLSThreadInitSection;
390  }
391  const MCSection *getCStringSection() const { return CStringSection; }
392  const MCSection *getUStringSection() const { return UStringSection; }
395  return ConstTextCoalSection;
396  }
397  const MCSection *getConstDataSection() const { return ConstDataSection; }
398  const MCSection *getDataCoalSection() const { return DataCoalSection; }
400  return ConstDataCoalSection;
401  }
406  }
409  }
412  }
415  }
418  }
421  }
423 
424  // COFF specific sections.
433 
434  // GOFF specific sections.
435  MCSection *getPPA1Section() const { return PPA1Section; }
436 
437  // XCOFF specific sections
439 
441 
442  bool isPositionIndependent() const { return PositionIndependent; }
443 
444  // Swift5 Reflection Data Sections
447  return ReflSectionKind !=
449  ? Swift5ReflectionSections[ReflSectionKind]
450  : nullptr;
451  }
452 
453 private:
454  bool PositionIndependent = false;
455  MCContext *Ctx = nullptr;
456  VersionTuple SDKVersion;
457  Optional<Triple> DarwinTargetVariantTriple;
458  VersionTuple DarwinTargetVariantSDKVersion;
459 
460  void initMachOMCObjectFileInfo(const Triple &T);
461  void initELFMCObjectFileInfo(const Triple &T, bool Large);
462  void initGOFFMCObjectFileInfo(const Triple &T);
463  void initCOFFMCObjectFileInfo(const Triple &T);
464  void initSPIRVMCObjectFileInfo(const Triple &T);
465  void initWasmMCObjectFileInfo(const Triple &T);
466  void initXCOFFMCObjectFileInfo(const Triple &T);
467  void initDXContainerObjectFileInfo(const Triple &T);
468  MCSection *getDwarfComdatSection(const char *Name, uint64_t Hash) const;
469 
470 public:
471  void setSDKVersion(const VersionTuple &TheSDKVersion) {
472  SDKVersion = TheSDKVersion;
473  }
474 
475  const VersionTuple &getSDKVersion() const { return SDKVersion; }
476 
478  DarwinTargetVariantTriple = T;
479  }
480 
482  return DarwinTargetVariantTriple ? DarwinTargetVariantTriple.getPointer()
483  : nullptr;
484  }
485 
486  void setDarwinTargetVariantSDKVersion(const VersionTuple &TheSDKVersion) {
487  DarwinTargetVariantSDKVersion = TheSDKVersion;
488  }
489 
491  return DarwinTargetVariantSDKVersion;
492  }
493 };
494 
495 } // end namespace llvm
496 
497 #endif
llvm::MCObjectFileInfo::TextCoalSection
MCSection * TextCoalSection
Definition: MCObjectFileInfo.h:204
llvm::MCObjectFileInfo::DwarfLineDWOSection
MCSection * DwarfLineDWOSection
Definition: MCObjectFileInfo.h:114
llvm::MCObjectFileInfo::getDwarfRangesSection
MCSection * getDwarfRangesSection() const
Definition: MCObjectFileInfo.h:296
llvm::MCObjectFileInfo::CompactUnwindSection
MCSection * CompactUnwindSection
If exception handling is supported by the target and the target can support a compact representation ...
Definition: MCObjectFileInfo.h:78
llvm::MCObjectFileInfo::ConstTextCoalSection
MCSection * ConstTextCoalSection
Definition: MCObjectFileInfo.h:205
llvm::MCObjectFileInfo::DwarfSwiftASTSection
MCSection * DwarfSwiftASTSection
Definition: MCObjectFileInfo.h:142
llvm::MCObjectFileInfo::getDwarfAddrSection
MCSection * getDwarfAddrSection() const
Definition: MCObjectFileInfo.h:326
llvm::MCObjectFileInfo::~MCObjectFileInfo
virtual ~MCObjectFileInfo()
llvm::MCObjectFileInfo::CompactUnwindDwarfEHFrameOnly
unsigned CompactUnwindDwarfEHFrameOnly
Compact unwind encoding indicating that we should emit only an EH frame.
Definition: MCObjectFileInfo.h:54
llvm::MCObjectFileInfo::getDwarfAccelObjCSection
MCSection * getDwarfAccelObjCSection() const
Definition: MCObjectFileInfo.h:308
llvm::MCObjectFileInfo::getDwarfFrameSection
MCSection * getDwarfFrameSection() const
Definition: MCObjectFileInfo.h:281
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::MCObjectFileInfo::getCStringSection
const MCSection * getCStringSection() const
Definition: MCObjectFileInfo.h:391
llvm::MCObjectFileInfo::DwarfAbbrevDWOSection
MCSection * DwarfAbbrevDWOSection
Definition: MCObjectFileInfo.h:112
llvm::MCObjectFileInfo::XDataSection
MCSection * XDataSection
Definition: MCObjectFileInfo.h:222
llvm::MCObjectFileInfo::DwarfRnglistsDWOSection
MCSection * DwarfRnglistsDWOSection
The DWARF v5 range and location list sections for fission.
Definition: MCObjectFileInfo.h:129
llvm::MCObjectFileInfo::getDwarfMacroSection
MCSection * getDwarfMacroSection() const
Definition: MCObjectFileInfo.h:300
llvm::MCObjectFileInfo::OmitDwarfIfHaveCompactUnwind
bool OmitDwarfIfHaveCompactUnwind
OmitDwarfIfHaveCompactUnwind - True if the target object file supports having some functions with com...
Definition: MCObjectFileInfo.h:45
Optional.h
llvm::MCObjectFileInfo::getTextSectionAlignment
virtual unsigned getTextSectionAlignment() const
Definition: MCObjectFileInfo.h:267
llvm::MCObjectFileInfo::EightByteConstantSection
MCSection * EightByteConstantSection
Definition: MCObjectFileInfo.h:212
llvm::MCObjectFileInfo::getCommDirectiveSupportsAlignment
bool getCommDirectiveSupportsAlignment() const
Definition: MCObjectFileInfo.h:257
llvm::MCObjectFileInfo::getDwarfPubTypesSection
MCSection * getDwarfPubTypesSection() const
Definition: MCObjectFileInfo.h:283
llvm::MCObjectFileInfo::getTOCBaseSection
MCSection * getTOCBaseSection() const
Definition: MCObjectFileInfo.h:438
llvm::MCObjectFileInfo::MergeableConst16Section
MCSection * MergeableConst16Section
Definition: MCObjectFileInfo.h:187
llvm::MCObjectFileInfo::ReadOnlySection
MCSection * ReadOnlySection
Section that is readonly and can contain arbitrary initialized data.
Definition: MCObjectFileInfo.h:69
llvm::MCContext
Context object for machine code objects.
Definition: MCContext.h:76
llvm::MCObjectFileInfo::NonLazySymbolPointerSection
MCSection * NonLazySymbolPointerSection
Definition: MCObjectFileInfo.h:215
llvm::MCObjectFileInfo::DwarfLineSection
MCSection * DwarfLineSection
Definition: MCObjectFileInfo.h:84
llvm::MCObjectFileInfo::getDwarfLoclistsSection
MCSection * getDwarfLoclistsSection() const
Definition: MCObjectFileInfo.h:298
llvm::MCObjectFileInfo::GFIDsSection
MCSection * GFIDsSection
Definition: MCObjectFileInfo.h:225
llvm::MCObjectFileInfo::DwarfLocDWOSection
MCSection * DwarfLocDWOSection
Definition: MCObjectFileInfo.h:115
llvm::MCObjectFileInfo::getTLSDataSection
const MCSection * getTLSDataSection() const
Definition: MCObjectFileInfo.h:352
llvm::MCObjectFileInfo::getDwarfCUIndexSection
MCSection * getDwarfCUIndexSection() const
Definition: MCObjectFileInfo.h:337
llvm::MCObjectFileInfo::SixteenByteConstantSection
MCSection * SixteenByteConstantSection
Definition: MCObjectFileInfo.h:213
llvm::MCObjectFileInfo::DwarfAddrSection
MCSection * DwarfAddrSection
Definition: MCObjectFileInfo.h:122
llvm::MCObjectFileInfo::CommDirectiveSupportsAlignment
bool CommDirectiveSupportsAlignment
True if .comm supports alignment.
Definition: MCObjectFileInfo.h:32
llvm::MCObjectFileInfo::FourByteConstantSection
MCSection * FourByteConstantSection
Definition: MCObjectFileInfo.h:211
llvm::MCObjectFileInfo::getThreadLocalPointerSection
MCSection * getThreadLocalPointerSection() const
Definition: MCObjectFileInfo.h:419
VersionTuple.h
llvm::MCObjectFileInfo::getTLSThreadInitSection
const MCSection * getTLSThreadInitSection() const
Definition: MCObjectFileInfo.h:388
llvm::MCObjectFileInfo::ThreadLocalPointerSection
MCSection * ThreadLocalPointerSection
Definition: MCObjectFileInfo.h:216
llvm::MCObjectFileInfo::getCOFFDebugSymbolsSection
MCSection * getCOFFDebugSymbolsSection() const
Definition: MCObjectFileInfo.h:341
llvm::MCObjectFileInfo::DataBSSSection
MCSection * DataBSSSection
Definition: MCObjectFileInfo.h:210
llvm::MCObjectFileInfo::getFDEEncoding
unsigned getFDEEncoding() const
Definition: MCObjectFileInfo.h:261
llvm::Triple
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:44
llvm::MCObjectFileInfo::AddrSigSection
MCSection * AddrSigSection
Definition: MCObjectFileInfo.h:217
llvm::MCObjectFileInfo::DwarfAbbrevSection
MCSection * DwarfAbbrevSection
Definition: MCObjectFileInfo.h:82
Swift.h
llvm::MCObjectFileInfo::DwarfDebugNamesSection
MCSection * DwarfDebugNamesSection
Accelerator table sections.
Definition: MCObjectFileInfo.h:103
PIC
PassInstrumentationCallbacks PIC
Definition: PassBuilderBindings.cpp:55
llvm::MCObjectFileInfo::DwarfTUIndexSection
MCSection * DwarfTUIndexSection
Definition: MCObjectFileInfo.h:134
llvm::MCObjectFileInfo::getDwarfLocSection
MCSection * getDwarfLocSection() const
Definition: MCObjectFileInfo.h:294
llvm::Optional
Definition: APInt.h:33
T
#define T
Definition: Mips16ISelLowering.cpp:341
llvm::MCObjectFileInfo::getPseudoProbeSection
MCSection * getPseudoProbeSection(const MCSection *TextSec) const
Definition: MCObjectFileInfo.cpp:1163
llvm::MCObjectFileInfo::ConstDataCoalSection
MCSection * ConstDataCoalSection
Definition: MCObjectFileInfo.h:208
llvm::MCObjectFileInfo::LazySymbolPointerSection
MCSection * LazySymbolPointerSection
Definition: MCObjectFileInfo.h:214
llvm::MCObjectFileInfo::TLSExtraDataSection
MCSection * TLSExtraDataSection
Extra TLS Variable Data section.
Definition: MCObjectFileInfo.h:152
llvm::MCObjectFileInfo::getDwarfStrOffSection
MCSection * getDwarfStrOffSection() const
Definition: MCObjectFileInfo.h:325
llvm::MCObjectFileInfo::getFaultMapSection
MCSection * getFaultMapSection() const
Definition: MCObjectFileInfo.h:356
llvm::MCObjectFileInfo::DwarfPubNamesSection
MCSection * DwarfPubNamesSection
Definition: MCObjectFileInfo.h:97
llvm::MCObjectFileInfo::DwarfPubTypesSection
MCSection * DwarfPubTypesSection
Definition: MCObjectFileInfo.h:87
llvm::MCObjectFileInfo::SXDataSection
MCSection * SXDataSection
Definition: MCObjectFileInfo.h:223
llvm::MCObjectFileInfo::getMergeableConst16Section
const MCSection * getMergeableConst16Section() const
Definition: MCObjectFileInfo.h:379
llvm::MCObjectFileInfo::getDwarfGnuPubTypesSection
MCSection * getDwarfGnuPubTypesSection() const
Definition: MCObjectFileInfo.h:287
llvm::MCObjectFileInfo::getContext
MCContext & getContext() const
Definition: MCObjectFileInfo.h:245
llvm::MCObjectFileInfo::getDwarfInfoSection
MCSection * getDwarfInfoSection() const
Definition: MCObjectFileInfo.h:275
llvm::MCObjectFileInfo::DwarfFrameSection
MCSection * DwarfFrameSection
Definition: MCObjectFileInfo.h:86
llvm::MCObjectFileInfo::getGFIDsSection
MCSection * getGFIDsSection() const
Definition: MCObjectFileInfo.h:430
llvm::MCObjectFileInfo::getDwarfLoclistsDWOSection
MCSection * getDwarfLoclistsDWOSection() const
Definition: MCObjectFileInfo.h:330
llvm::MCObjectFileInfo::DwarfARangesSection
MCSection * DwarfARangesSection
Definition: MCObjectFileInfo.h:91
llvm::MCObjectFileInfo::DwarfStrSection
MCSection * DwarfStrSection
Definition: MCObjectFileInfo.h:89
llvm::Optional::getPointer
constexpr const T * getPointer() const
Definition: Optional.h:311
llvm::MCObjectFileInfo::getLazySymbolPointerSection
MCSection * getLazySymbolPointerSection() const
Definition: MCObjectFileInfo.h:413
llvm::MCObjectFileInfo::getDwarfPubNamesSection
MCSection * getDwarfPubNamesSection() const
Definition: MCObjectFileInfo.h:282
llvm::MCObjectFileInfo::ReadOnly8Section
MCSection * ReadOnly8Section
Definition: MCObjectFileInfo.h:234
llvm::MCObjectFileInfo::getDarwinTargetVariantSDKVersion
const VersionTuple & getDarwinTargetVariantSDKVersion() const
Definition: MCObjectFileInfo.h:490
llvm::MCObjectFileInfo::Swift5ReflectionSections
std::array< MCSection *, binaryformat::Swift5ReflectionSectionKind::last > Swift5ReflectionSections
Definition: MCObjectFileInfo.h:239
llvm::MCObjectFileInfo::getDataRelROSection
MCSection * getDataRelROSection() const
Definition: MCObjectFileInfo.h:372
llvm::MCObjectFileInfo::LSDASection
MCSection * LSDASection
If exception handling is supported by the target, this is the section the Language Specific Data Area...
Definition: MCObjectFileInfo.h:73
llvm::MCObjectFileInfo::getDataSection
MCSection * getDataSection() const
Definition: MCObjectFileInfo.h:269
llvm::MCObjectFileInfo::getTLSExtraDataSection
MCSection * getTLSExtraDataSection() const
Definition: MCObjectFileInfo.h:351
llvm::MCObjectFileInfo::SupportsCompactUnwindWithoutEHFrame
bool SupportsCompactUnwindWithoutEHFrame
True if the target object file supports emitting a compact unwind section without an associated EH fr...
Definition: MCObjectFileInfo.h:40
llvm::MCObjectFileInfo::getDwarfARangesSection
MCSection * getDwarfARangesSection() const
Definition: MCObjectFileInfo.h:295
llvm::MCObjectFileInfo::PPA1Section
MCSection * PPA1Section
Definition: MCObjectFileInfo.h:230
llvm::MCObjectFileInfo::getGLJMPSection
MCSection * getGLJMPSection() const
Definition: MCObjectFileInfo.h:432
llvm::MCObjectFileInfo::getPPA1Section
MCSection * getPPA1Section() const
Definition: MCObjectFileInfo.h:435
llvm::MCObjectFileInfo::MergeableConst8Section
MCSection * MergeableConst8Section
Definition: MCObjectFileInfo.h:186
llvm::MCObjectFileInfo::getDarwinTargetVariantTriple
const Triple * getDarwinTargetVariantTriple() const
Definition: MCObjectFileInfo.h:481
llvm::MCObjectFileInfo::setDarwinTargetVariantSDKVersion
void setDarwinTargetVariantSDKVersion(const VersionTuple &TheSDKVersion)
Definition: MCObjectFileInfo.h:486
llvm::MCObjectFileInfo::getDataBSSSection
MCSection * getDataBSSSection() const
Definition: MCObjectFileInfo.h:403
llvm::MCObjectFileInfo::isPositionIndependent
bool isPositionIndependent() const
Definition: MCObjectFileInfo.h:442
llvm::MCObjectFileInfo::getDwarfMacinfoSection
MCSection * getDwarfMacinfoSection() const
Definition: MCObjectFileInfo.h:299
llvm::MCObjectFileInfo::getStackMapSection
MCSection * getStackMapSection() const
Definition: MCObjectFileInfo.h:355
llvm::MCObjectFileInfo::getKCFITrapSection
MCSection * getKCFITrapSection(const MCSection &TextSec) const
Definition: MCObjectFileInfo.cpp:1144
llvm::MCObjectFileInfo::FDECFIEncoding
unsigned FDECFIEncoding
FDE CFI encoding.
Definition: MCObjectFileInfo.h:51
llvm::MCObjectFileInfo::TLSThreadInitSection
const MCSection * TLSThreadInitSection
Section for thread local data initialization functions.
Definition: MCObjectFileInfo.h:200
llvm::MCObjectFileInfo::getDwarfInfoDWOSection
MCSection * getDwarfInfoDWOSection() const
Definition: MCObjectFileInfo.h:315
llvm::MCObjectFileInfo::DwarfAccelTypesSection
MCSection * DwarfAccelTypesSection
Definition: MCObjectFileInfo.h:107
llvm::MCObjectFileInfo::getCompactUnwindSection
MCSection * getCompactUnwindSection() const
Definition: MCObjectFileInfo.h:273
llvm::MCObjectFileInfo::getDwarfLocDWOSection
MCSection * getDwarfLocDWOSection() const
Definition: MCObjectFileInfo.h:323
llvm::MCObjectFileInfo::DwarfStrOffDWOSection
MCSection * DwarfStrOffDWOSection
Definition: MCObjectFileInfo.h:116
llvm::MCObjectFileInfo::getStackSizesSection
MCSection * getStackSizesSection(const MCSection &TextSec) const
Definition: MCObjectFileInfo.cpp:1105
llvm::MCObjectFileInfo::GLJMPSection
MCSection * GLJMPSection
Definition: MCObjectFileInfo.h:227
llvm::MCObjectFileInfo::getFourByteConstantSection
const MCSection * getFourByteConstantSection() const
Definition: MCObjectFileInfo.h:404
llvm::MCObjectFileInfo::DwarfStrDWOSection
MCSection * DwarfStrDWOSection
Definition: MCObjectFileInfo.h:113
llvm::MCObjectFileInfo::getTLSTLVSection
const MCSection * getTLSTLVSection() const
Definition: MCObjectFileInfo.h:387
llvm::MCObjectFileInfo::setSDKVersion
void setSDKVersion(const VersionTuple &TheSDKVersion)
Definition: MCObjectFileInfo.h:471
llvm::MCObjectFileInfo::getCOFFGlobalTypeHashesSection
MCSection * getCOFFGlobalTypeHashesSection() const
Definition: MCObjectFileInfo.h:347
llvm::MCObjectFileInfo::PDataSection
MCSection * PDataSection
Definition: MCObjectFileInfo.h:221
llvm::VersionTuple
Represents a version number in the form major[.minor[.subminor[.build]]].
Definition: VersionTuple.h:31
llvm::MCObjectFileInfo::getDwarfStrDWOSection
MCSection * getDwarfStrDWOSection() const
Definition: MCObjectFileInfo.h:321
llvm::MCObjectFileInfo::getLSDASection
MCSection * getLSDASection() const
Definition: MCObjectFileInfo.h:272
llvm::MCObjectFileInfo::TLSDataSection
MCSection * TLSDataSection
Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.
Definition: MCObjectFileInfo.h:155
llvm::MCObjectFileInfo::DwarfRangesSection
MCSection * DwarfRangesSection
Definition: MCObjectFileInfo.h:92
llvm::MCObjectFileInfo::getTextSection
MCSection * getTextSection() const
Definition: MCObjectFileInfo.h:268
llvm::MCObjectFileInfo::getDwarfAccelNamespaceSection
MCSection * getDwarfAccelNamespaceSection() const
Definition: MCObjectFileInfo.h:309
llvm::MCObjectFileInfo::ConstDataSection
MCSection * ConstDataSection
Definition: MCObjectFileInfo.h:206
llvm::MCObjectFileInfo::DwarfLoclistsSection
MCSection * DwarfLoclistsSection
The DWARF v5 locations list section.
Definition: MCObjectFileInfo.h:126
llvm::MCObjectFileInfo::getPseudoProbeDescSection
MCSection * getPseudoProbeDescSection(StringRef FuncName) const
Definition: MCObjectFileInfo.cpp:1179
llvm::MCObjectFileInfo::getDwarfRnglistsSection
MCSection * getDwarfRnglistsSection() const
Definition: MCObjectFileInfo.h:297
llvm::MCObjectFileInfo::COFFGlobalTypeHashesSection
MCSection * COFFGlobalTypeHashesSection
Definition: MCObjectFileInfo.h:146
llvm::MCObjectFileInfo::getMergeableConst32Section
const MCSection * getMergeableConst32Section() const
Definition: MCObjectFileInfo.h:382
llvm::binaryformat::Swift5ReflectionSectionKind
Swift5ReflectionSectionKind
Definition: Swift.h:14
llvm::MCObjectFileInfo::FaultMapSection
MCSection * FaultMapSection
FaultMap section.
Definition: MCObjectFileInfo.h:166
llvm::MCObjectFileInfo::DwarfMacinfoSection
MCSection * DwarfMacinfoSection
Definition: MCObjectFileInfo.h:93
llvm::MCObjectFileInfo::getDwarfSwiftASTSection
MCSection * getDwarfSwiftASTSection() const
Definition: MCObjectFileInfo.h:339
uint64_t
llvm::MCObjectFileInfo::getGIATsSection
MCSection * getGIATsSection() const
Definition: MCObjectFileInfo.h:431
llvm::MCObjectFileInfo::getDwarfDebugNamesSection
MCSection * getDwarfDebugNamesSection() const
Definition: MCObjectFileInfo.h:302
llvm::MCObjectFileInfo::UStringSection
MCSection * UStringSection
Definition: MCObjectFileInfo.h:203
llvm::MCObjectFileInfo::CStringSection
MCSection * CStringSection
Definition: MCObjectFileInfo.h:202
llvm::MCObjectFileInfo::DwarfMacroSection
MCSection * DwarfMacroSection
Definition: MCObjectFileInfo.h:94
llvm::MCObjectFileInfo::getDataCoalSection
const MCSection * getDataCoalSection() const
Definition: MCObjectFileInfo.h:398
llvm::MCObjectFileInfo::getDwarfAccelNamesSection
MCSection * getDwarfAccelNamesSection() const
Definition: MCObjectFileInfo.h:305
llvm::MCObjectFileInfo::getNonLazySymbolPointerSection
MCSection * getNonLazySymbolPointerSection() const
Definition: MCObjectFileInfo.h:416
llvm::MCObjectFileInfo::SupportsWeakOmittedEHFrame
bool SupportsWeakOmittedEHFrame
True if target object file supports a weak_definition of constant 0 for an omitted EH frame.
Definition: MCObjectFileInfo.h:36
llvm::MCObjectFileInfo::getGEHContSection
MCSection * getGEHContSection() const
Definition: MCObjectFileInfo.h:429
llvm::MCObjectFileInfo::DwarfLineStrSection
MCSection * DwarfLineStrSection
Definition: MCObjectFileInfo.h:85
llvm::MCObjectFileInfo::getSixteenByteConstantSection
const MCSection * getSixteenByteConstantSection() const
Definition: MCObjectFileInfo.h:410
llvm::MCObjectFileInfo::DwarfLocSection
MCSection * DwarfLocSection
Definition: MCObjectFileInfo.h:90
llvm::MCObjectFileInfo::getCOFFDebugTypesSection
MCSection * getCOFFDebugTypesSection() const
Definition: MCObjectFileInfo.h:344
llvm::MCObjectFileInfo::getAddrSigSection
MCSection * getAddrSigSection() const
Definition: MCObjectFileInfo.h:422
llvm::MCObjectFileInfo::initMCObjectFileInfo
void initMCObjectFileInfo(MCContext &MCCtx, bool PIC, bool LargeCodeModel=false)
Definition: MCObjectFileInfo.cpp:1030
llvm::MCObjectFileInfo::PseudoProbeDescSection
MCSection * PseudoProbeDescSection
Definition: MCObjectFileInfo.h:181
MCSection.h
llvm::MCObjectFileInfo::DwarfInfoSection
MCSection * DwarfInfoSection
Definition: MCObjectFileInfo.h:83
Triple.h
llvm::MCObjectFileInfo::getUStringSection
const MCSection * getUStringSection() const
Definition: MCObjectFileInfo.h:392
llvm::MCObjectFileInfo::DwarfMacroDWOSection
MCSection * DwarfMacroDWOSection
Definition: MCObjectFileInfo.h:118
llvm::MCObjectFileInfo::DwarfLoclistsDWOSection
MCSection * DwarfLoclistsDWOSection
Definition: MCObjectFileInfo.h:130
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::MCObjectFileInfo::getBBAddrMapSection
MCSection * getBBAddrMapSection(const MCSection &TextSec) const
Definition: MCObjectFileInfo.cpp:1124
llvm::binaryformat::unknown
@ unknown
Definition: Swift.h:18
llvm::MCObjectFileInfo::getDrectveSection
MCSection * getDrectveSection() const
Definition: MCObjectFileInfo.h:425
llvm::MCObjectFileInfo::getReadOnlySection
MCSection * getReadOnlySection() const
Definition: MCObjectFileInfo.h:271
llvm::MCSection
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition: MCSection.h:39
llvm::MCObjectFileInfo::getPDataSection
MCSection * getPDataSection() const
Definition: MCObjectFileInfo.h:426
llvm::MCObjectFileInfo::getDwarfTUIndexSection
MCSection * getDwarfTUIndexSection() const
Definition: MCObjectFileInfo.h:338
llvm::MCObjectFileInfo::getXDataSection
MCSection * getXDataSection() const
Definition: MCObjectFileInfo.h:427
llvm::MCObjectFileInfo::RemarksSection
MCSection * RemarksSection
Remarks section.
Definition: MCObjectFileInfo.h:169
llvm::MCObjectFileInfo::DwarfInfoDWOSection
MCSection * DwarfInfoDWOSection
Definition: MCObjectFileInfo.h:110
llvm::MCObjectFileInfo::GEHContSection
MCSection * GEHContSection
Definition: MCObjectFileInfo.h:224
llvm::MCObjectFileInfo::DrectveSection
MCSection * DrectveSection
COFF specific sections.
Definition: MCObjectFileInfo.h:220
llvm::MCObjectFileInfo::DwarfStrOffSection
MCSection * DwarfStrOffSection
The DWARF v5 string offset and address table sections.
Definition: MCObjectFileInfo.h:121
llvm::MCObjectFileInfo::DataRelROSection
MCSection * DataRelROSection
Definition: MCObjectFileInfo.h:184
llvm::MCObjectFileInfo::TOCBaseSection
MCSection * TOCBaseSection
Definition: MCObjectFileInfo.h:233
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:50
llvm::MCObjectFileInfo::DwarfRnglistsSection
MCSection * DwarfRnglistsSection
The DWARF v5 range list section.
Definition: MCObjectFileInfo.h:124
llvm::MCObjectFileInfo::DataSection
MCSection * DataSection
Section directive for standard data.
Definition: MCObjectFileInfo.h:60
llvm::MCObjectFileInfo::DwarfAccelNamespaceSection
MCSection * DwarfAccelNamespaceSection
Definition: MCObjectFileInfo.h:106
llvm::MCObjectFileInfo::getOmitDwarfIfHaveCompactUnwind
bool getOmitDwarfIfHaveCompactUnwind() const
Definition: MCObjectFileInfo.h:253
llvm::MCObjectFileInfo::getDwarfMacroDWOSection
MCSection * getDwarfMacroDWOSection() const
Definition: MCObjectFileInfo.h:333
llvm::MCObjectFileInfo::MergeableConst32Section
MCSection * MergeableConst32Section
Definition: MCObjectFileInfo.h:188
llvm::MCObjectFileInfo::GIATsSection
MCSection * GIATsSection
Definition: MCObjectFileInfo.h:226
llvm::MCObjectFileInfo::DwarfDebugInlineSection
const MCSection * DwarfDebugInlineSection
Definition: MCObjectFileInfo.h:88
llvm::MCObjectFileInfo::getDwarfTypesDWOSection
MCSection * getDwarfTypesDWOSection() const
Definition: MCObjectFileInfo.h:319
llvm::MCObjectFileInfo::EHFrameSection
MCSection * EHFrameSection
EH frame section.
Definition: MCObjectFileInfo.h:174
llvm::MCObjectFileInfo::getEHFrameSection
MCSection * getEHFrameSection() const
Definition: MCObjectFileInfo.h:440
llvm::MCObjectFileInfo::getBSSSection
MCSection * getBSSSection() const
Definition: MCObjectFileInfo.h:270
llvm::MCObjectFileInfo::getDwarfTypesSection
MCSection * getDwarfTypesSection(uint64_t Hash) const
Definition: MCObjectFileInfo.h:316
llvm::MCObjectFileInfo::COFFDebugTypesSection
MCSection * COFFDebugTypesSection
Definition: MCObjectFileInfo.h:145
llvm::MCObjectFileInfo::getSupportsCompactUnwindWithoutEHFrame
bool getSupportsCompactUnwindWithoutEHFrame() const
Definition: MCObjectFileInfo.h:250
llvm::MCObjectFileInfo::getDwarfLineDWOSection
MCSection * getDwarfLineDWOSection() const
Definition: MCObjectFileInfo.h:322
llvm::MCObjectFileInfo::getDwarfAbbrevSection
MCSection * getDwarfAbbrevSection() const
Definition: MCObjectFileInfo.h:274
llvm::MCObjectFileInfo::getDwarfLineStrSection
MCSection * getDwarfLineStrSection() const
Definition: MCObjectFileInfo.h:280
llvm::MCObjectFileInfo::DataCoalSection
MCSection * DataCoalSection
Definition: MCObjectFileInfo.h:207
llvm::CodeModel::Large
@ Large
Definition: CodeGen.h:28
llvm::MCObjectFileInfo::DwarfAccelObjCSection
MCSection * DwarfAccelObjCSection
Definition: MCObjectFileInfo.h:105
llvm::MCObjectFileInfo::DwarfGnuPubTypesSection
MCSection * DwarfGnuPubTypesSection
Section for newer gnu pubtypes.
Definition: MCObjectFileInfo.h:139
llvm::MCObjectFileInfo::getDwarfAbbrevDWOSection
MCSection * getDwarfAbbrevDWOSection() const
Definition: MCObjectFileInfo.h:320
llvm::MCObjectFileInfo::getDwarfDebugInlineSection
const MCSection * getDwarfDebugInlineSection() const
Definition: MCObjectFileInfo.h:290
llvm::MCObjectFileInfo::DwarfTypesDWOSection
MCSection * DwarfTypesDWOSection
Definition: MCObjectFileInfo.h:111
llvm::MCObjectFileInfo::DwarfAccelNamesSection
MCSection * DwarfAccelNamesSection
Definition: MCObjectFileInfo.h:104
llvm::MCObjectFileInfo::ReadOnly16Section
MCSection * ReadOnly16Section
Definition: MCObjectFileInfo.h:235
llvm::MCObjectFileInfo::BSSSection
MCSection * BSSSection
Section that is default initialized to zero.
Definition: MCObjectFileInfo.h:63
llvm::MCObjectFileInfo::MergeableConst4Section
MCSection * MergeableConst4Section
Definition: MCObjectFileInfo.h:185
llvm::MCObjectFileInfo::TLSBSSSection
MCSection * TLSBSSSection
Section directive for Thread Local uninitialized data.
Definition: MCObjectFileInfo.h:160
llvm::MCObjectFileInfo::getMergeableConst8Section
const MCSection * getMergeableConst8Section() const
Definition: MCObjectFileInfo.h:376
llvm::MCObjectFileInfo::getSupportsWeakOmittedEHFrame
bool getSupportsWeakOmittedEHFrame() const
Definition: MCObjectFileInfo.h:247
llvm::MCObjectFileInfo::StackSizesSection
MCSection * StackSizesSection
Section containing metadata on function stack sizes.
Definition: MCObjectFileInfo.h:177
llvm::MCObjectFileInfo::getTLSBSSSection
MCSection * getTLSBSSSection() const
Definition: MCObjectFileInfo.h:353
llvm::MCObjectFileInfo::getDwarfStrSection
MCSection * getDwarfStrSection() const
Definition: MCObjectFileInfo.h:293
llvm::MCObjectFileInfo::DwarfGnuPubNamesSection
MCSection * DwarfGnuPubNamesSection
Section for newer gnu pubnames.
Definition: MCObjectFileInfo.h:137
llvm::MCObjectFileInfo::getDwarfMacinfoDWOSection
MCSection * getDwarfMacinfoDWOSection() const
Definition: MCObjectFileInfo.h:334
llvm::MCObjectFileInfo::DwarfMacinfoDWOSection
MCSection * DwarfMacinfoDWOSection
Definition: MCObjectFileInfo.h:117
llvm::MCObjectFileInfo::getDwarfAccelTypesSection
MCSection * getDwarfAccelTypesSection() const
Definition: MCObjectFileInfo.h:312
llvm::MCObjectFileInfo::StackMapSection
MCSection * StackMapSection
StackMap section.
Definition: MCObjectFileInfo.h:163
llvm::MCObjectFileInfo::PseudoProbeSection
MCSection * PseudoProbeSection
Section for pseudo probe information used by AutoFDO.
Definition: MCObjectFileInfo.h:180
llvm::MCObjectFileInfo::getDwarfRnglistsDWOSection
MCSection * getDwarfRnglistsDWOSection() const
Definition: MCObjectFileInfo.h:327
llvm::MCObjectFileInfo::getConstTextCoalSection
const MCSection * getConstTextCoalSection() const
Definition: MCObjectFileInfo.h:394
llvm::MCObjectFileInfo::DataCommonSection
MCSection * DataCommonSection
Definition: MCObjectFileInfo.h:209
llvm::MCObjectFileInfo::getTextCoalSection
MCSection * getTextCoalSection() const
Definition: MCObjectFileInfo.h:393
llvm::MCObjectFileInfo::DwarfCUIndexSection
MCSection * DwarfCUIndexSection
Definition: MCObjectFileInfo.h:133
llvm::MCObjectFileInfo::getEightByteConstantSection
const MCSection * getEightByteConstantSection() const
Definition: MCObjectFileInfo.h:407
llvm::MCObjectFileInfo::getSXDataSection
MCSection * getSXDataSection() const
Definition: MCObjectFileInfo.h:428
llvm::MCObjectFileInfo::setDarwinTargetVariantTriple
void setDarwinTargetVariantTriple(const Triple &T)
Definition: MCObjectFileInfo.h:477
llvm::MCObjectFileInfo::getDataCommonSection
const MCSection * getDataCommonSection() const
Definition: MCObjectFileInfo.h:402
llvm::MCObjectFileInfo::getConstDataSection
const MCSection * getConstDataSection() const
Definition: MCObjectFileInfo.h:397
llvm::MCObjectFileInfo::TLSTLVSection
MCSection * TLSTLVSection
Section for thread local structure information.
Definition: MCObjectFileInfo.h:196
llvm::MCObjectFileInfo::getDwarfLineSection
MCSection * getDwarfLineSection() const
Definition: MCObjectFileInfo.h:279
llvm::MCObjectFileInfo::getSwift5ReflectionSection
MCSection * getSwift5ReflectionSection(llvm::binaryformat::Swift5ReflectionSectionKind ReflSectionKind)
Definition: MCObjectFileInfo.h:445
llvm::MCObjectFileInfo::COFFDebugSymbolsSection
MCSection * COFFDebugSymbolsSection
Definition: MCObjectFileInfo.h:144
llvm::MCObjectFileInfo::getConstDataCoalSection
const MCSection * getConstDataCoalSection() const
Definition: MCObjectFileInfo.h:399
llvm::MCObjectFileInfo::getSDKVersion
const VersionTuple & getSDKVersion() const
Definition: MCObjectFileInfo.h:475
llvm::MCObjectFileInfo::getDwarfStrOffDWOSection
MCSection * getDwarfStrOffDWOSection() const
Definition: MCObjectFileInfo.h:324
llvm::MCObjectFileInfo::getDwarfInfoSection
MCSection * getDwarfInfoSection(uint64_t Hash) const
Definition: MCObjectFileInfo.h:276
llvm::MCObjectFileInfo::getRemarksSection
MCSection * getRemarksSection() const
Definition: MCObjectFileInfo.h:357
llvm::MCObjectFileInfo
Definition: MCObjectFileInfo.h:28
llvm::MCObjectFileInfo::getDwarfGnuPubNamesSection
MCSection * getDwarfGnuPubNamesSection() const
Definition: MCObjectFileInfo.h:284
llvm::MCObjectFileInfo::getCompactUnwindDwarfEHFrameOnly
unsigned getCompactUnwindDwarfEHFrameOnly() const
Definition: MCObjectFileInfo.h:263
llvm::MCObjectFileInfo::getMergeableConst4Section
const MCSection * getMergeableConst4Section() const
Definition: MCObjectFileInfo.h:373
llvm::MCObjectFileInfo::getPCSection
MCSection * getPCSection(StringRef Name, const MCSection *TextSec) const
Definition: MCObjectFileInfo.cpp:1202
llvm::MCObjectFileInfo::TextSection
MCSection * TextSection
Section directive for standard text.
Definition: MCObjectFileInfo.h:57