LLVM: lib/MC/MCObjectFileInfo.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

28

29using namespace llvm;

30

32

33 if (T.isOSDarwin())

34 return false;

35

36

38 return true;

39

40

41 if (T.isWatchABI())

42 return true;

43

44

45 if (T.isMacOSX() && T.isMacOSXVersionLT(10, 6))

46 return true;

47

48

49 if (T.isiOS() && T.isX86())

50 return true;

51

52

53 if (T.isSimulatorEnvironment())

54 return true;

55

56

57 if (T.isXROS())

58 return true;

59

60 return false;

61}

62

63void MCObjectFileInfo::initMachOMCObjectFileInfo(const Triple &T) {

65 "__TEXT", "__eh_frame",

69

70 if (T.isOSDarwin() &&

72 T.isSimulatorEnvironment()))

74

75 switch (Ctx->emitDwarfUnwindInfo()) {

78 break;

81 break;

85 break;

86 }

87

89

91 = Ctx->getMachOSection("__TEXT", "__text",

96

97

99

101 = Ctx->getMachOSection("__DATA", "__thread_data",

105 = Ctx->getMachOSection("__DATA", "__thread_bss",

108

109

111 = Ctx->getMachOSection("__DATA", "__thread_vars",

114

118

120 = Ctx->getMachOSection("__TEXT", "__cstring",

124 = Ctx->getMachOSection("__TEXT","__ustring", 0,

127 = Ctx->getMachOSection("__TEXT", "__literal4",

131 = Ctx->getMachOSection("__TEXT", "__literal8",

134

136 = Ctx->getMachOSection("__TEXT", "__literal16",

139

141 = Ctx->getMachOSection("__TEXT", "__const", 0,

143

144

145

146

147

148

149

151

153 = Ctx->getMachOSection("__DATA", "__const", 0,

155

158 = Ctx->getMachOSection("__TEXT", "__textcoal_nt",

163 = Ctx->getMachOSection("__TEXT", "__const_coal",

169 } else {

174 }

175

177 = Ctx->getMachOSection("__DATA","__common",

183

184

186 = Ctx->getMachOSection("__DATA", "__la_symbol_ptr",

190 = Ctx->getMachOSection("__DATA", "__nl_symbol_ptr",

193

195 = Ctx->getMachOSection("__DATA", "__thread_ptr",

198

199 AddrSigSection = Ctx->getMachOSection("__DATA", "__llvm_addrsig", 0,

201

202

203 LSDASection = Ctx->getMachOSection("__TEXT", "__gcc_except_tab", 0,

205

209

214

215 if (T.isX86())

221 }

222

223

233

240

244

287

312 StackMapSection = Ctx->getMachOSection("__LLVM_STACKMAPS", "__llvm_stackmaps",

314

315 FaultMapSection = Ctx->getMachOSection("__LLVM_FAULTMAPS", "__llvm_faultmaps",

317

320

321

322

323

324 if (!Ctx->getSwift5ReflectionSegmentName().empty()) {

325#define HANDLE_SWIFT_SECTION(KIND, MACHO, ELF, COFF) \

326 Swift5ReflectionSections \

327 [llvm::binaryformat::Swift5ReflectionSectionKind::KIND] = \

328 Ctx->getMachOSection(Ctx->getSwift5ReflectionSegmentName().data(), \

329 MACHO, 0, SectionKind::getMetadata());

330#include "llvm/BinaryFormat/Swift.def"

331 }

332

334}

335

336void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {

337 switch (T.getArch()) {

342

343

344

345

346 if (PositionIndependent)

348 else

349 FDECFIEncoding = Ctx->getAsmInfo()->getCodePointerSize() == 4

352 break;

360 break;

364 break;

368 break;

371 break;

372 default:

374 break;

375 }

376

380 switch (T.getArch()) {

383 break;

385 SFrameABIArch = sframe::ABI::AArch64EndianLittle;

386 break;

389 break;

390 default:

391 break;

392 }

393

394

395

399

400

403

406

409

412

416

419

422

426

430

434

438

439

440

441

442

443

444

447

450

452

453

454

455

456 if (T.isMIPS())

458

459

461 Ctx->getELFSection(".debug_abbrev", DebugSecType, 0);

462 DwarfInfoSection = Ctx->getELFSection(".debug_info", DebugSecType, 0);

463 DwarfLineSection = Ctx->getELFSection(".debug_line", DebugSecType, 0);

465 Ctx->getELFSection(".debug_line_str", DebugSecType,

467 DwarfFrameSection = Ctx->getELFSection(".debug_frame", DebugSecType, 0);

469 Ctx->getELFSection(".debug_pubnames", DebugSecType, 0);

471 Ctx->getELFSection(".debug_pubtypes", DebugSecType, 0);

473 Ctx->getELFSection(".debug_gnu_pubnames", DebugSecType, 0);

475 Ctx->getELFSection(".debug_gnu_pubtypes", DebugSecType, 0);

477 Ctx->getELFSection(".debug_str", DebugSecType,

479 DwarfLocSection = Ctx->getELFSection(".debug_loc", DebugSecType, 0);

481 Ctx->getELFSection(".debug_aranges", DebugSecType, 0);

483 Ctx->getELFSection(".debug_ranges", DebugSecType, 0);

485 Ctx->getELFSection(".debug_macinfo", DebugSecType, 0);

486 DwarfMacroSection = Ctx->getELFSection(".debug_macro", DebugSecType, 0);

487

488

489

490

501

502

504 Ctx->getELFSection(".debug_str_offsets", DebugSecType, 0);

505 DwarfAddrSection = Ctx->getELFSection(".debug_addr", DebugSecType, 0);

506 DwarfRnglistsSection = Ctx->getELFSection(".debug_rnglists", DebugSecType, 0);

507 DwarfLoclistsSection = Ctx->getELFSection(".debug_loclists", DebugSecType, 0);

508

509

511 Ctx->getELFSection(".debug_info.dwo", DebugSecType, ELF::SHF_EXCLUDE);

513 Ctx->getELFSection(".debug_types.dwo", DebugSecType, ELF::SHF_EXCLUDE);

515 Ctx->getELFSection(".debug_abbrev.dwo", DebugSecType, ELF::SHF_EXCLUDE);

517 ".debug_str.dwo", DebugSecType,

520 Ctx->getELFSection(".debug_line.dwo", DebugSecType, ELF::SHF_EXCLUDE);

522 Ctx->getELFSection(".debug_loc.dwo", DebugSecType, ELF::SHF_EXCLUDE);

526 Ctx->getELFSection(".debug_rnglists.dwo", DebugSecType, ELF::SHF_EXCLUDE);

528 Ctx->getELFSection(".debug_macinfo.dwo", DebugSecType, ELF::SHF_EXCLUDE);

530 Ctx->getELFSection(".debug_macro.dwo", DebugSecType, ELF::SHF_EXCLUDE);

531

533 Ctx->getELFSection(".debug_loclists.dwo", DebugSecType, ELF::SHF_EXCLUDE);

534

535

537 Ctx->getELFSection(".debug_cu_index", DebugSecType, 0);

539 Ctx->getELFSection(".debug_tu_index", DebugSecType, 0);

540

543

546

548 Ctx->getELFSection(".eh_frame", EHSectionType, EHSectionFlags);

549

552

555

557

558 PseudoProbeSection = Ctx->getELFSection(".pseudo_probe", DebugSecType, 0);

560 Ctx->getELFSection(".pseudo_probe_desc", DebugSecType, 0);

561

563}

564

565void MCObjectFileInfo::initGOFFMCObjectFileInfo(const Triple &T) {

566 MCSectionGOFF *RootSDSection = Ctx->getGOFFSection(

569

570 MCSectionGOFF *ADAEDSection = Ctx->getGOFFSection(

576 RootSDSection);

581 ADAEDSection);

582

589 RootSDSection);

590

591 MCSectionGOFF *PPA2ListEDSection = Ctx->getGOFFSection(

597 RootSDSection);

602 PPA2ListEDSection);

603

610 RootSDSection);

611}

612

613void MCObjectFileInfo::initCOFFMCObjectFileInfo(const Triple &T) {

617

618

619

620

622

623

628 ".text",

638

641

643 } else {

644 LSDASection = Ctx->getCOFFSection(".gcc_except_table",

647 }

648

653

654

657 }

658

659

672

821

824

828

832

834

838

842

846

850

854

858

859

868}

869

870void MCObjectFileInfo::initSPIRVMCObjectFileInfo(const Triple &T) {

871

873}

874

875void MCObjectFileInfo::initWasmMCObjectFileInfo(const Triple &T) {

878

908

919

920

942

945

946

951

952

953

954

955 LSDASection = Ctx->getWasmSection(".rodata.gcc_except_table",

957

958

959}

960

961void MCObjectFileInfo::initXCOFFMCObjectFileInfo(const Triple &T) {

962

963

964

965

967 "..text..",

970 true);

971

972

973 MCSectionXCOFF *TS = static_cast<MCSectionXCOFF *>(TextSection);

976

980 true);

981

985 true);

987

991 true);

993

997 true);

999

1003 true);

1004

1009

1010

1012

1017

1022

1023

1024

1025

1028 std::nullopt,

1030

1034

1038

1041 std::nullopt,

1043

1046 std::nullopt,

1048

1051 std::nullopt,

1053

1057

1061

1064 std::nullopt,

1066

1069 std::nullopt,

1071

1075}

1076

1077void MCObjectFileInfo::initDXContainerObjectFileInfo(const Triple &T) {

1078

1080}

1081

1083

1085 bool LargeCodeModel) {

1086 PositionIndependent = PIC;

1087 Ctx = &MCCtx;

1088

1089

1092

1094

1096

1104

1105 const Triple &TheTriple = Ctx->getTargetTriple();

1106 switch (Ctx->getObjectFileType()) {

1108 initMachOMCObjectFileInfo(TheTriple);

1109 break;

1111 initCOFFMCObjectFileInfo(TheTriple);

1112 break;

1114 initELFMCObjectFileInfo(TheTriple, LargeCodeModel);

1115 break;

1117 initGOFFMCObjectFileInfo(TheTriple);

1118 break;

1120 initSPIRVMCObjectFileInfo(TheTriple);

1121 break;

1123 initWasmMCObjectFileInfo(TheTriple);

1124 break;

1126 initXCOFFMCObjectFileInfo(TheTriple);

1127 break;

1129 initDXContainerObjectFileInfo(TheTriple);

1130 break;

1131 }

1132}

1133

1134MCSection *MCObjectFileInfo::getDwarfComdatSection(const char *Name,

1136 switch (Ctx->getTargetTriple().getObjectFormat()) {

1139 utostr(Hash), true);

1150 report_fatal_error("Cannot get DWARF comdat section for this object file "

1151 "format: not implemented.");

1152 break;

1153 }

1155}

1156

1161

1166 GroupName = Group->getName();

1168 }

1169

1170 return Ctx->getELFSection(

1172 true, ElfSec.getUniqueID(),

1174}

1175

1179 Ctx->getTargetTriple().isPS4())

1181

1186 GroupName = Group->getName();

1188 }

1189

1190 return Ctx->getELFSection(

1194}

1195

1199 return nullptr;

1200

1205 GroupName = Group->getName();

1207 }

1208

1209

1210

1211 return Ctx->getELFSection(

1215}

1216

1220 return nullptr;

1221

1226 GroupName = Group->getName();

1228 }

1229

1230 return Ctx->getELFSection(

1232 true, ElfSec.getUniqueID(),

1234}

1235

1238 auto ObjFileType = Ctx->getObjectFileType();

1240 const auto &ElfSec = static_cast<const MCSectionELF &>(TextSec);

1243 if (const MCSymbol *Group = ElfSec.getGroup()) {

1244 GroupName = Group->getName();

1246 }

1247 return Ctx->getELFSection(

1249 true, ElfSec.getUniqueID(),

1254 unsigned Characteristics =

1256 const auto &COFFSec = static_cast<const MCSectionCOFF &>(TextSec);

1257 if (const MCSymbol *COMDATSym = COFFSec.getCOMDATSymbol()) {

1258

1259 COMDATSymName = COMDATSym->getName();

1262 }

1263 return Ctx->getCOFFSection(PseudoProbeSection->getName(), Characteristics,

1264 COMDATSymName, Selection, COFFSec.getUniqueID());

1265 }

1266

1268}

1269

1272 if (!Ctx->getTargetTriple().supportsCOMDAT() || FuncName.empty())

1274

1275

1276

1277

1278

1279

1280

1281

1282

1283

1284 auto ObjFileType = Ctx->getObjectFileType();

1288 return Ctx->getELFSection(S->getName(), S->getType(), Flags,

1289 S->getEntrySize(), S->getName() + "_" + FuncName,

1290 true);

1293 unsigned Characteristics =

1295 std::string COMDATSymName = (S->getName() + "_" + FuncName).str();

1296 return Ctx->getCOFFSection(S->getName(), Characteristics, COMDATSymName,

1298 }

1299

1301}

1302

1306

1308 const MCSection *TextSec) const {

1310 return nullptr;

1311

1312

1314

1315 if (!TextSec)

1317

1319 const auto &ElfSec = static_cast<const MCSectionELF &>(*TextSec);

1320 if (const MCSymbol *Group = ElfSec.getGroup()) {

1321 GroupName = Group->getName();

1323 }

1324 return Ctx->getELFSection(

1325 Name, ELF::SHT_PROGBITS, Flags, 0, GroupName, true, ElfSec.getUniqueID(),

1327}

amdgpu AMDGPU DAG DAG Pattern Instruction Selection

static bool useCompactUnwind(const Triple &T)

Definition MCObjectFileInfo.cpp:31

This file declares the MCSectionGOFF class, which contains all of the necessary machine code sections...

PassInstrumentationCallbacks PIC

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

Context object for machine code objects.

MCSection * NonLazySymbolPointerSection

MCSection * TLSBSSSection

Section directive for Thread Local uninitialized data.

MCSection * CallGraphSection

Section containing call graph metadata.

MCSection * DwarfDebugNamesSection

Accelerator table sections.

MCSection * DwarfAddrSection

const MCSection * TLSThreadInitSection

Section for thread local data initialization functions.

MCSection * GEHContSection

MCSection * DwarfStrOffSection

The DWARF v5 string offset and address table sections.

MCSection * DwarfARangesSection

MCSection * DwarfStrSection

MCSection * MergeableConst16Section

MCSection * COFFGlobalTypeHashesSection

MCSection * SFrameSection

SFrame section.

MCSection * DwarfLocDWOSection

MCSection * MergeableConst4Section

MCSection * DwarfMacinfoSection

MCSection * DwarfPubNamesSection

MCSection * DwarfGnuPubTypesSection

Section for newer gnu pubtypes.

MCSection * getLLVMStatsSection() const

Definition MCObjectFileInfo.cpp:1303

MCSection * DwarfCUIndexSection

MCSection * TextSection

Section directive for standard text.

MCSection * ConstDataCoalSection

MCSection * LLVMStatsSection

MCSection * ConstTextCoalSection

MCSection * TLSDataSection

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

MCSection * MergeableConst8Section

MCSection * AddrSigSection

MCSection * DwarfInfoSection

MCSection * ThreadLocalPointerSection

MCSection * LSDASection

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

MCSection * CompactUnwindSection

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

MCSection * COFFDebugSymbolsSection

MCSection * DwarfStrDWOSection

MCSection * getPseudoProbeDescSection(StringRef FuncName) const

Definition MCObjectFileInfo.cpp:1271

MCSection * DwarfLoclistsSection

The DWARF v5 locations list section.

MCSection * ReadOnly16Section

MCSection * DwarfLocSection

MCSection * PseudoProbeSection

Section for pseudo probe information used by AutoFDO.

MCSection * FourByteConstantSection

MCSection * DwarfAccelNamesSection

MCSection * ReadOnly8Section

MCSection * getStackSizesSection(const MCSection &TextSec) const

Definition MCObjectFileInfo.cpp:1177

MCSection * DwarfRnglistsSection

The DWARF v5 range list section.

const MCSection * DwarfDebugInlineSection

MCSection * DataBSSSection

MCSection * DwarfAbbrevDWOSection

MCSection * getBBAddrMapSection(const MCSection &TextSec) const

Definition MCObjectFileInfo.cpp:1197

MCSection * COFFDebugTypesSection

MCSection * LazySymbolPointerSection

MCSection * RemarksSection

Remarks section.

MCSection * getPseudoProbeSection(const MCSection &TextSec) const

Definition MCObjectFileInfo.cpp:1237

MCSection * TextCoalSection

MCSection * PseudoProbeDescSection

MCSection * DwarfPubTypesSection

MCSection * DwarfRangesSection

MCSection * DwarfStrOffDWOSection

MCSection * TLSExtraDataSection

Extra TLS Variable Data section.

MCSection * DataRelROSection

MCSection * EHFrameSection

EH frame section.

bool OmitDwarfIfHaveCompactUnwind

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

MCSection * CStringSection

MCSection * DrectveSection

COFF specific sections.

MCSection * FaultMapSection

FaultMap section.

MCSection * getKCFITrapSection(const MCSection &TextSec) const

Definition MCObjectFileInfo.cpp:1218

MCSection * DwarfAccelObjCSection

MCSection * TLSTLVSection

Section for thread local structure information.

MCSection * DwarfSwiftASTSection

MCSection * DwarfMacroSection

void initMCObjectFileInfo(MCContext &MCCtx, bool PIC, bool LargeCodeModel=false)

Definition MCObjectFileInfo.cpp:1084

MCSection * DataCoalSection

MCSection * DwarfFrameSection

MCSection * SXDataSection

MCSection * UStringSection

MCSection * DwarfRnglistsDWOSection

The DWARF v5 range and location list sections for fission.

MCSection * ImportCallSection

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

MCSection * MergeableConst32Section

MCSection * SixteenByteConstantSection

virtual ~MCObjectFileInfo()

MCSection * DataCommonSection

MCSection * getPCSection(StringRef Name, const MCSection *TextSec) const

Definition MCObjectFileInfo.cpp:1307

std::optional< sframe::ABI > SFrameABIArch

SFrame ABI architecture byte.

MCSection * DwarfLineStrSection

bool SupportsCompactUnwindWithoutEHFrame

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

MCSection * ReadOnlySection

Section that is readonly and can contain arbitrary initialized data.

MCSection * DwarfLineDWOSection

MCSection * DwarfAbbrevSection

MCSection * DwarfLineSection

MCSection * TOCBaseSection

unsigned FDECFIEncoding

FDE CFI encoding.

MCSection * DwarfTUIndexSection

MCSection * DwarfLoclistsDWOSection

MCSection * getCallGraphSection(const MCSection &TextSec) const

Definition MCObjectFileInfo.cpp:1158

MCSection * DwarfInfoDWOSection

MCSection * BSSSection

Section that is default initialized to zero.

MCSection * PPA2ListSection

MCSection * EightByteConstantSection

MCSection * StackSizesSection

Section containing metadata on function stack sizes.

unsigned CompactUnwindDwarfEHFrameOnly

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

MCSection * getTextSection() const

MCSection * DwarfTypesDWOSection

MCSection * DwarfGnuPubNamesSection

Section for newer gnu pubnames.

MCSection * ConstDataSection

MCSection * StackMapSection

StackMap section.

MCSection * DwarfMacroDWOSection

MCSection * DwarfMacinfoDWOSection

MCSection * DwarfAccelNamespaceSection

MCSection * DwarfAccelTypesSection

MCSection * DataSection

Section directive for standard data.

This represents a section on Windows.

This represents a section on linux, lots of unix variants and some bare metal systems.

unsigned getFlags() const

unsigned getUniqueID() const

const MCSymbolELF * getGroup() const

void setSymbolTableName(StringRef STN)

MCSymbolXCOFF * getQualNameSymbol() const

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

static constexpr unsigned NonUniqueID

MCSymbol * getBeginSymbol()

void setSymbolTableName(StringRef STN)

MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...

static SectionKind getThreadData()

static SectionKind getMetadata()

static SectionKind getMergeable2ByteCString()

static SectionKind getMergeableConst4()

static SectionKind getText()

static SectionKind getReadOnlyWithRel()

static SectionKind getData()

static SectionKind getMergeableConst8()

static SectionKind getBSS()

static SectionKind getThreadBSS()

static SectionKind getMergeableConst16()

static SectionKind getMergeable1ByteCString()

static SectionKind getReadOnly()

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

constexpr bool empty() const

empty - Check if the string is empty.

Triple - Helper class for working with autoconf configuration names.

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

constexpr char Align[]

Key for Kernel::Arg::Metadata::mAlign.

@ IMAGE_SCN_CNT_UNINITIALIZED_DATA

@ IMAGE_SCN_MEM_DISCARDABLE

@ IMAGE_SCN_CNT_INITIALIZED_DATA

@ IMAGE_COMDAT_SELECT_ASSOCIATIVE

@ IMAGE_COMDAT_SELECT_EXACT_MATCH

constexpr StringLiteral CLASS_WSA

constexpr StringLiteral CLASS_PPA2

constexpr StringLiteral CLASS_CODE

@ S_THREAD_LOCAL_VARIABLE_POINTERS

S_THREAD_LOCAL_VARIABLE_POINTERS - Section with pointers to thread local structures.

@ S_16BYTE_LITERALS

S_16BYTE_LITERALS - Section with only 16 byte literals.

@ S_THREAD_LOCAL_INIT_FUNCTION_POINTERS

S_THREAD_LOCAL_INIT_FUNCTION_POINTERS - Section with thread local variable initialization pointers to...

@ S_COALESCED

S_COALESCED - Section contains symbols that are to be coalesced.

@ S_THREAD_LOCAL_ZEROFILL

S_THREAD_LOCAL_ZEROFILL - Thread local zerofill section.

@ S_LAZY_SYMBOL_POINTERS

S_LAZY_SYMBOL_POINTERS - Section with lazy symbol pointers.

@ S_CSTRING_LITERALS

S_CSTRING_LITERALS - Section with literal C strings.

@ S_THREAD_LOCAL_REGULAR

S_THREAD_LOCAL_REGULAR - Thread local data section.

@ S_ZEROFILL

S_ZEROFILL - Zero fill on demand section.

@ S_NON_LAZY_SYMBOL_POINTERS

S_NON_LAZY_SYMBOL_POINTERS - Section with non-lazy symbol pointers.

@ S_4BYTE_LITERALS

S_4BYTE_LITERALS - Section with 4 byte literals.

@ S_8BYTE_LITERALS

S_8BYTE_LITERALS - Section with 8 byte literals.

@ S_THREAD_LOCAL_VARIABLES

S_THREAD_LOCAL_VARIABLES - Section with thread local variable structure data.

@ S_ATTR_DEBUG

S_ATTR_DEBUG - A debug section.

@ S_ATTR_NO_TOC

S_ATTR_NO_TOC - Section contains coalesced symbols that are not to be in a ranlib table of contents.

@ S_ATTR_LIVE_SUPPORT

S_ATTR_LIVE_SUPPORT - Blocks are live if they reference live blocks.

@ S_ATTR_PURE_INSTRUCTIONS

S_ATTR_PURE_INSTRUCTIONS - Section contains only true machine instructions.

@ S_ATTR_STRIP_STATIC_SYMS

S_ATTR_STRIP_STATIC_SYMS - Ok to strip static symbols in this section in files with the MY_DYLDLINK f...

@ SSUBTYP_DWARNGE

DWARF aranges section.

@ SSUBTYP_DWFRAME

DWARF frame section.

@ SSUBTYP_DWABREV

DWARF abbrev section.

@ SSUBTYP_DWINFO

DWARF info section.

@ SSUBTYP_DWRNGES

DWARF ranges section.

@ SSUBTYP_DWLOC

DWARF loc section.

@ SSUBTYP_DWMAC

DWARF macinfo section.

@ SSUBTYP_DWPBNMS

DWARF pubnames section.

@ SSUBTYP_DWPBTYP

DWARF pubtypes section.

@ SSUBTYP_DWLINE

DWARF line section.

@ SSUBTYP_DWSTR

DWARF str section.

@ XMC_TC0

TOC Anchor for TOC Addressability.

@ XMC_TL

Initialized thread-local variable.

@ XMC_RO

Read Only Constant.

@ XTY_SD

Csect definition for initialized storage.

This is an optimization pass for GlobalISel generic memory operations.

std::string utostr(uint64_t X, bool isNeg=false)

LLVM_ABI void report_fatal_error(Error Err, bool gen_crash_diag=true)