13#ifndef LLVM_MC_MCOBJECTFILEINFO_H
14#define LLVM_MC_MCOBJECTFILEINFO_H
34 bool SupportsWeakOmittedEHFrame =
false;
38 bool SupportsCompactUnwindWithoutEHFrame =
false;
43 bool OmitDwarfIfHaveCompactUnwind =
false;
49 unsigned FDECFIEncoding = 0;
52 unsigned CompactUnwindDwarfEHFrameOnly = 0;
55 std::optional<sframe::ABI> SFrameABIArch = {};
254 std::array<MCSection *, binaryformat::Swift5ReflectionSectionKind::last>
255 Swift5ReflectionSections = {};
259 bool LargeCodeModel =
false);
264 return SupportsWeakOmittedEHFrame;
267 return SupportsCompactUnwindWithoutEHFrame;
270 return OmitDwarfIfHaveCompactUnwind;
276 return CompactUnwindDwarfEHFrameOnly;
291 return getDwarfComdatSection(
".debug_info", Hash);
299 return DwarfGnuPubNamesSection;
302 return DwarfGnuPubTypesSection;
305 return DwarfDebugInlineSection;
317 return DwarfDebugNamesSection;
320 return DwarfAccelNamesSection;
324 return DwarfAccelNamespaceSection;
327 return DwarfAccelTypesSection;
331 return getDwarfComdatSection(
".debug_types", Hash);
342 return DwarfRnglistsDWOSection;
345 return DwarfLoclistsDWOSection;
349 return DwarfMacinfoDWOSection;
356 return COFFDebugSymbolsSection;
359 return COFFDebugTypesSection;
362 return COFFGlobalTypeHashesSection;
392 return MergeableConst4Section;
395 return MergeableConst8Section;
398 return MergeableConst16Section;
401 return MergeableConst32Section;
407 return TLSThreadInitSection;
413 return ConstTextCoalSection;
418 return ConstDataCoalSection;
423 return FourByteConstantSection;
426 return EightByteConstantSection;
429 return SixteenByteConstantSection;
432 return LazySymbolPointerSection;
435 return NonLazySymbolPointerSection;
438 return ThreadLocalPointerSection;
468 return ReflSectionKind !=
470 ? Swift5ReflectionSections[ReflSectionKind]
475 bool PositionIndependent =
false;
478 void initMachOMCObjectFileInfo(
const Triple &
T);
479 void initELFMCObjectFileInfo(
const Triple &
T,
bool Large);
480 void initGOFFMCObjectFileInfo(
const Triple &
T);
481 void initCOFFMCObjectFileInfo(
const Triple &
T);
482 void initSPIRVMCObjectFileInfo(
const Triple &
T);
483 void initWasmMCObjectFileInfo(
const Triple &
T);
484 void initXCOFFMCObjectFileInfo(
const Triple &
T);
485 void initDXContainerObjectFileInfo(
const Triple &
T);
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.
MCSection * getTLSBSSSection() const
MCSection * getDataRelROSection() const
MCSection * getDwarfLoclistsSection() const
MCSection * getDwarfAccelTypesSection() const
const MCSection * getMergeableConst4Section() const
const MCSection * getMergeableConst16Section() const
const MCSection * getMergeableConst32Section() const
MCSection * getDwarfGnuPubNamesSection() const
MCSection * getDwarfStrOffDWOSection() const
MCSection * getAddrSigSection() const
const MCSection * getTLSTLVSection() const
MCSection * getEHFrameSection() const
MCSection * getDwarfRangesSection() const
MCSection * getADASection() const
MCSection * getPDataSection() const
MCSection * getDwarfInfoSection(uint64_t Hash) const
MCSection * getDwarfAccelNamespaceSection() const
MCSection * getFaultMapSection() const
MCSection * getDwarfLineDWOSection() const
bool getSupportsWeakOmittedEHFrame() const
MCSection * getDwarfStrOffSection() const
MCSection * getDwarfInfoDWOSection() const
const MCSection * getConstTextCoalSection() const
MCSection * getGEHContSection() const
MCSection * getDwarfTypesDWOSection() const
MCSection * getDwarfPubNamesSection() const
bool getSupportsCompactUnwindWithoutEHFrame() const
MCSection * getDwarfMacroSection() const
MCSection * getSXDataSection() const
MCSection * getTextCoalSection() const
MCSection * getDwarfStrSection() const
MCSection * getDwarfLineStrSection() const
unsigned getCompactUnwindDwarfEHFrameOnly() const
MCSection * getGFIDsSection() const
MCSection * getDwarfLoclistsDWOSection() const
const MCSection * getConstDataSection() const
const MCSection * getDataCoalSection() const
MCSection * getBSSSection() const
MCSection * getDwarfTUIndexSection() const
MCSection * getDwarfDebugNamesSection() const
MCSection * getRemarksSection() const
const MCSection * getConstDataCoalSection() const
MCSection * getDwarfMacinfoDWOSection() const
MCSection * getDrectveSection() const
MCSection * getSwift5ReflectionSection(llvm::binaryformat::Swift5ReflectionSectionKind ReflSectionKind)
MCSection * getLazySymbolPointerSection() const
MCSection * getDwarfRnglistsSection() const
MCSection * getDwarfAddrSection() const
MCSection * getDwarfLineSection() const
MCSection * getDwarfInfoSection() const
MCSection * getDwarfFrameSection() const
MCSection * getTLSExtraDataSection() const
const MCSection * getEightByteConstantSection() const
const MCSection * getTLSThreadInitSection() const
MCSection * getPPA2ListSection() const
MCSection * getLSDASection() const
MCSection * getDwarfPubTypesSection() const
bool isPositionIndependent() const
unsigned getFDEEncoding() const
const MCSection * getDwarfDebugInlineSection() const
MCSection * getDwarfTypesSection(uint64_t Hash) const
MCSection * getDwarfGnuPubTypesSection() const
const MCSection * getMergeableConst8Section() const
MCSection * getDwarfStrDWOSection() const
MCSection * getStackMapSection() const
virtual ~MCObjectFileInfo()
MCSection * getDwarfAccelNamesSection() const
MCSection * getReadOnlySection() const
MCSection * getThreadLocalPointerSection() const
MCSection * getDwarfAbbrevDWOSection() const
MCSection * getDwarfRnglistsDWOSection() const
const MCSection * getFourByteConstantSection() const
MCSection * getDwarfAbbrevSection() const
MCSection * getDwarfSwiftASTSection() const
MCSection * getIDRLSection() const
MCSection * getCOFFDebugSymbolsSection() const
MCSection * getXDataSection() const
bool getOmitDwarfIfHaveCompactUnwind() const
MCSection * getGLJMPSection() const
MCSection * getTOCBaseSection() const
const MCSection * getCStringSection() const
const MCSection * getTLSDataSection() const
MCSection * getCOFFDebugTypesSection() const
std::optional< sframe::ABI > getSFrameABIArch() const
MCSection * getGIATsSection() const
MCSection * getSFrameSection() const
MCSection * getDwarfCUIndexSection() const
MCSection * getImportCallSection() const
MCSection * getDwarfMacinfoSection() const
MCSection * getDwarfLocDWOSection() const
MCSection * getDwarfARangesSection() const
MCSection * getDwarfAccelObjCSection() const
MCSection * getNonLazySymbolPointerSection() const
const MCSection * getSixteenByteConstantSection() const
MCSection * getDwarfLocSection() const
virtual unsigned getTextSectionAlignment() const
MCSection * getDataBSSSection() const
const MCSection * getDataCommonSection() const
MCSection * getTextSection() const
MCSection * getCOFFGlobalTypeHashesSection() const
const MCSection * getUStringSection() const
MCSection * getDwarfMacroDWOSection() const
MCContext & getContext() const
MCSection * getDataSection() const
MCSection * getCompactUnwindSection() const
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.
This is an optimization pass for GlobalISel generic memory operations.