LLVM  15.0.0git
MCObjectFileInfo.cpp
Go to the documentation of this file.
1 //===-- MCObjectFileInfo.cpp - Object File Information --------------------===//
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 
10 #include "llvm/ADT/StringExtras.h"
11 #include "llvm/ADT/Triple.h"
12 #include "llvm/BinaryFormat/COFF.h"
13 #include "llvm/BinaryFormat/ELF.h"
14 #include "llvm/BinaryFormat/Wasm.h"
15 #include "llvm/MC/MCAsmInfo.h"
16 #include "llvm/MC/MCContext.h"
17 #include "llvm/MC/MCSection.h"
18 #include "llvm/MC/MCSectionCOFF.h"
20 #include "llvm/MC/MCSectionELF.h"
21 #include "llvm/MC/MCSectionGOFF.h"
22 #include "llvm/MC/MCSectionMachO.h"
23 #include "llvm/MC/MCSectionSPIRV.h"
24 #include "llvm/MC/MCSectionWasm.h"
25 #include "llvm/MC/MCSectionXCOFF.h"
26 #include "llvm/Support/Casting.h"
27 
28 using namespace llvm;
29 
30 static bool useCompactUnwind(const Triple &T) {
31  // Only on darwin.
32  if (!T.isOSDarwin())
33  return false;
34 
35  // aarch64 always has it.
36  if (T.getArch() == Triple::aarch64 || T.getArch() == Triple::aarch64_32)
37  return true;
38 
39  // armv7k always has it.
40  if (T.isWatchABI())
41  return true;
42 
43  // Use it on newer version of OS X.
44  if (T.isMacOSX() && !T.isMacOSXVersionLT(10, 6))
45  return true;
46 
47  // And the iOS simulator.
48  if (T.isiOS() && T.isX86())
49  return true;
50 
51  return false;
52 }
53 
54 void MCObjectFileInfo::initMachOMCObjectFileInfo(const Triple &T) {
55  // MachO
57 
59  "__TEXT", "__eh_frame",
63 
64  if (T.isOSDarwin() &&
65  (T.getArch() == Triple::aarch64 || T.getArch() == Triple::aarch64_32))
67 
68  switch (Ctx->emitDwarfUnwindInfo()) {
71  break;
74  break;
77  T.isWatchABI() || SupportsCompactUnwindWithoutEHFrame;
78  break;
79  }
80 
82 
83  // .comm doesn't support alignment before Leopard.
84  if (T.isMacOSX() && T.isMacOSXVersionLT(10, 5))
86 
87  TextSection // .text
88  = Ctx->getMachOSection("__TEXT", "__text",
91  DataSection // .data
92  = Ctx->getMachOSection("__DATA", "__data", 0, SectionKind::getData());
93 
94  // BSSSection might not be expected initialized on msvc.
95  BSSSection = nullptr;
96 
97  TLSDataSection // .tdata
98  = Ctx->getMachOSection("__DATA", "__thread_data",
101  TLSBSSSection // .tbss
102  = Ctx->getMachOSection("__DATA", "__thread_bss",
105 
106  // TODO: Verify datarel below.
107  TLSTLVSection // .tlv
108  = Ctx->getMachOSection("__DATA", "__thread_vars",
111 
113  "__DATA", "__thread_init", MachO::S_THREAD_LOCAL_INIT_FUNCTION_POINTERS,
115 
116  CStringSection // .cstring
117  = Ctx->getMachOSection("__TEXT", "__cstring",
121  = Ctx->getMachOSection("__TEXT","__ustring", 0,
123  FourByteConstantSection // .literal4
124  = Ctx->getMachOSection("__TEXT", "__literal4",
127  EightByteConstantSection // .literal8
128  = Ctx->getMachOSection("__TEXT", "__literal8",
131 
132  SixteenByteConstantSection // .literal16
133  = Ctx->getMachOSection("__TEXT", "__literal16",
136 
137  ReadOnlySection // .const
138  = Ctx->getMachOSection("__TEXT", "__const", 0,
140 
141  // If the target is not powerpc, map the coal sections to the non-coal
142  // sections.
143  //
144  // "__TEXT/__textcoal_nt" => section "__TEXT/__text"
145  // "__TEXT/__const_coal" => section "__TEXT/__const"
146  // "__DATA/__datacoal_nt" => section "__DATA/__data"
147  Triple::ArchType ArchTy = T.getArch();
148 
149  ConstDataSection // .const_data
150  = Ctx->getMachOSection("__DATA", "__const", 0,
152 
153  if (ArchTy == Triple::ppc || ArchTy == Triple::ppc64) {
155  = Ctx->getMachOSection("__TEXT", "__textcoal_nt",
160  = Ctx->getMachOSection("__TEXT", "__const_coal",
164  "__DATA", "__datacoal_nt", MachO::S_COALESCED, SectionKind::getData());
166  } else {
171  }
172 
174  = Ctx->getMachOSection("__DATA","__common",
178  = Ctx->getMachOSection("__DATA","__bss", MachO::S_ZEROFILL,
180 
181 
183  = Ctx->getMachOSection("__DATA", "__la_symbol_ptr",
187  = Ctx->getMachOSection("__DATA", "__nl_symbol_ptr",
190 
192  = Ctx->getMachOSection("__DATA", "__thread_ptr",
195 
196  AddrSigSection = Ctx->getMachOSection("__DATA", "__llvm_addrsig", 0,
198 
199  // Exception Handling.
200  LSDASection = Ctx->getMachOSection("__TEXT", "__gcc_except_tab", 0,
202 
203  COFFDebugSymbolsSection = nullptr;
204  COFFDebugTypesSection = nullptr;
205  COFFGlobalTypeHashesSection = nullptr;
206 
207  if (useCompactUnwind(T)) {
209  Ctx->getMachOSection("__LD", "__compact_unwind", MachO::S_ATTR_DEBUG,
211 
212  if (T.isX86())
213  CompactUnwindDwarfEHFrameOnly = 0x04000000; // UNWIND_X86_64_MODE_DWARF
214  else if (T.getArch() == Triple::aarch64 || T.getArch() == Triple::aarch64_32)
215  CompactUnwindDwarfEHFrameOnly = 0x03000000; // UNWIND_ARM64_MODE_DWARF
216  else if (T.getArch() == Triple::arm || T.getArch() == Triple::thumb)
217  CompactUnwindDwarfEHFrameOnly = 0x04000000; // UNWIND_ARM_MODE_DWARF
218  }
219 
220  // Debug Information.
222  Ctx->getMachOSection("__DWARF", "__debug_names", MachO::S_ATTR_DEBUG,
223  SectionKind::getMetadata(), "debug_names_begin");
225  Ctx->getMachOSection("__DWARF", "__apple_names", MachO::S_ATTR_DEBUG,
226  SectionKind::getMetadata(), "names_begin");
228  Ctx->getMachOSection("__DWARF", "__apple_objc", MachO::S_ATTR_DEBUG,
229  SectionKind::getMetadata(), "objc_begin");
230  // 16 character section limit...
232  Ctx->getMachOSection("__DWARF", "__apple_namespac", MachO::S_ATTR_DEBUG,
233  SectionKind::getMetadata(), "namespac_begin");
235  Ctx->getMachOSection("__DWARF", "__apple_types", MachO::S_ATTR_DEBUG,
236  SectionKind::getMetadata(), "types_begin");
237 
239  Ctx->getMachOSection("__DWARF", "__swift_ast", MachO::S_ATTR_DEBUG,
241 
243  Ctx->getMachOSection("__DWARF", "__debug_abbrev", MachO::S_ATTR_DEBUG,
244  SectionKind::getMetadata(), "section_abbrev");
246  Ctx->getMachOSection("__DWARF", "__debug_info", MachO::S_ATTR_DEBUG,
247  SectionKind::getMetadata(), "section_info");
249  Ctx->getMachOSection("__DWARF", "__debug_line", MachO::S_ATTR_DEBUG,
250  SectionKind::getMetadata(), "section_line");
252  Ctx->getMachOSection("__DWARF", "__debug_line_str", MachO::S_ATTR_DEBUG,
253  SectionKind::getMetadata(), "section_line_str");
255  Ctx->getMachOSection("__DWARF", "__debug_frame", MachO::S_ATTR_DEBUG,
258  Ctx->getMachOSection("__DWARF", "__debug_pubnames", MachO::S_ATTR_DEBUG,
261  Ctx->getMachOSection("__DWARF", "__debug_pubtypes", MachO::S_ATTR_DEBUG,
264  Ctx->getMachOSection("__DWARF", "__debug_gnu_pubn", MachO::S_ATTR_DEBUG,
267  Ctx->getMachOSection("__DWARF", "__debug_gnu_pubt", MachO::S_ATTR_DEBUG,
270  Ctx->getMachOSection("__DWARF", "__debug_str", MachO::S_ATTR_DEBUG,
271  SectionKind::getMetadata(), "info_string");
273  Ctx->getMachOSection("__DWARF", "__debug_str_offs", MachO::S_ATTR_DEBUG,
274  SectionKind::getMetadata(), "section_str_off");
276  Ctx->getMachOSection("__DWARF", "__debug_addr", MachO::S_ATTR_DEBUG,
277  SectionKind::getMetadata(), "section_info");
279  Ctx->getMachOSection("__DWARF", "__debug_loc", MachO::S_ATTR_DEBUG,
280  SectionKind::getMetadata(), "section_debug_loc");
282  Ctx->getMachOSection("__DWARF", "__debug_loclists", MachO::S_ATTR_DEBUG,
283  SectionKind::getMetadata(), "section_debug_loc");
284 
286  Ctx->getMachOSection("__DWARF", "__debug_aranges", MachO::S_ATTR_DEBUG,
289  Ctx->getMachOSection("__DWARF", "__debug_ranges", MachO::S_ATTR_DEBUG,
290  SectionKind::getMetadata(), "debug_range");
292  Ctx->getMachOSection("__DWARF", "__debug_rnglists", MachO::S_ATTR_DEBUG,
293  SectionKind::getMetadata(), "debug_range");
295  Ctx->getMachOSection("__DWARF", "__debug_macinfo", MachO::S_ATTR_DEBUG,
296  SectionKind::getMetadata(), "debug_macinfo");
298  Ctx->getMachOSection("__DWARF", "__debug_macro", MachO::S_ATTR_DEBUG,
299  SectionKind::getMetadata(), "debug_macro");
301  Ctx->getMachOSection("__DWARF", "__debug_inlined", MachO::S_ATTR_DEBUG,
304  Ctx->getMachOSection("__DWARF", "__debug_cu_index", MachO::S_ATTR_DEBUG,
307  Ctx->getMachOSection("__DWARF", "__debug_tu_index", MachO::S_ATTR_DEBUG,
309  StackMapSection = Ctx->getMachOSection("__LLVM_STACKMAPS", "__llvm_stackmaps",
311 
312  FaultMapSection = Ctx->getMachOSection("__LLVM_FAULTMAPS", "__llvm_faultmaps",
314 
316  "__LLVM", "__remarks", MachO::S_ATTR_DEBUG, SectionKind::getMetadata());
317 
318  // The architecture of dsymutil makes it very difficult to copy the Swift
319  // reflection metadata sections into the __TEXT segment, so dsymutil creates
320  // these sections in the __DWARF segment instead.
321  if (!Ctx->getSwift5ReflectionSegmentName().empty()) {
322 #define HANDLE_SWIFT_SECTION(KIND, MACHO, ELF, COFF) \
323  Swift5ReflectionSections \
324  [llvm::binaryformat::Swift5ReflectionSectionKind::KIND] = \
325  Ctx->getMachOSection(Ctx->getSwift5ReflectionSegmentName().data(), \
326  MACHO, 0, SectionKind::getMetadata());
327 #include "llvm/BinaryFormat/Swift.def"
328  }
329 
331 }
332 
333 void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {
334  switch (T.getArch()) {
335  case Triple::mips:
336  case Triple::mipsel:
337  case Triple::mips64:
338  case Triple::mips64el:
339  // We cannot use DW_EH_PE_sdata8 for the large PositionIndependent case
340  // since there is no R_MIPS_PC64 relocation (only a 32-bit version).
341  if (PositionIndependent && !Large)
343  else
347  break;
348  case Triple::ppc64:
349  case Triple::ppc64le:
350  case Triple::aarch64:
351  case Triple::aarch64_be:
352  case Triple::x86_64:
355  break;
356  case Triple::bpfel:
357  case Triple::bpfeb:
359  break;
360  case Triple::hexagon:
362  PositionIndependent ? dwarf::DW_EH_PE_pcrel : dwarf::DW_EH_PE_absptr;
363  break;
364  default:
366  break;
367  }
368 
369  unsigned EHSectionType = T.getArch() == Triple::x86_64
372 
373  // Solaris requires different flags for .eh_frame to seemingly every other
374  // platform.
375  unsigned EHSectionFlags = ELF::SHF_ALLOC;
376  if (T.isOSSolaris() && T.getArch() != Triple::x86_64)
377  EHSectionFlags |= ELF::SHF_WRITE;
378 
379  // ELF
382 
385 
388 
391 
393  Ctx->getELFSection(".tdata", ELF::SHT_PROGBITS,
395 
398 
399  DataRelROSection = Ctx->getELFSection(".data.rel.ro", ELF::SHT_PROGBITS,
401 
403  Ctx->getELFSection(".rodata.cst4", ELF::SHT_PROGBITS,
405 
407  Ctx->getELFSection(".rodata.cst8", ELF::SHT_PROGBITS,
409 
411  Ctx->getELFSection(".rodata.cst16", ELF::SHT_PROGBITS,
413 
415  Ctx->getELFSection(".rodata.cst32", ELF::SHT_PROGBITS,
417 
418  // Exception Handling Sections.
419 
420  // FIXME: We're emitting LSDA info into a readonly section on ELF, even though
421  // it contains relocatable pointers. In PIC mode, this is probably a big
422  // runtime hit for C++ apps. Either the contents of the LSDA need to be
423  // adjusted or this should be a data section.
424  LSDASection = Ctx->getELFSection(".gcc_except_table", ELF::SHT_PROGBITS,
426 
427  COFFDebugSymbolsSection = nullptr;
428  COFFDebugTypesSection = nullptr;
429 
430  unsigned DebugSecType = ELF::SHT_PROGBITS;
431 
432  // MIPS .debug_* sections should have SHT_MIPS_DWARF section type
433  // to distinguish among sections contain DWARF and ECOFF debug formats.
434  // Sections with ECOFF debug format are obsoleted and marked by SHT_PROGBITS.
435  if (T.isMIPS())
436  DebugSecType = ELF::SHT_MIPS_DWARF;
437 
438  // Debug Info Sections.
440  Ctx->getELFSection(".debug_abbrev", DebugSecType, 0);
441  DwarfInfoSection = Ctx->getELFSection(".debug_info", DebugSecType, 0);
442  DwarfLineSection = Ctx->getELFSection(".debug_line", DebugSecType, 0);
444  Ctx->getELFSection(".debug_line_str", DebugSecType,
446  DwarfFrameSection = Ctx->getELFSection(".debug_frame", DebugSecType, 0);
448  Ctx->getELFSection(".debug_pubnames", DebugSecType, 0);
450  Ctx->getELFSection(".debug_pubtypes", DebugSecType, 0);
452  Ctx->getELFSection(".debug_gnu_pubnames", DebugSecType, 0);
454  Ctx->getELFSection(".debug_gnu_pubtypes", DebugSecType, 0);
456  Ctx->getELFSection(".debug_str", DebugSecType,
458  DwarfLocSection = Ctx->getELFSection(".debug_loc", DebugSecType, 0);
460  Ctx->getELFSection(".debug_aranges", DebugSecType, 0);
462  Ctx->getELFSection(".debug_ranges", DebugSecType, 0);
464  Ctx->getELFSection(".debug_macinfo", DebugSecType, 0);
465  DwarfMacroSection = Ctx->getELFSection(".debug_macro", DebugSecType, 0);
466 
467  // DWARF5 Experimental Debug Info
468 
469  // Accelerator Tables
471  Ctx->getELFSection(".debug_names", ELF::SHT_PROGBITS, 0);
473  Ctx->getELFSection(".apple_names", ELF::SHT_PROGBITS, 0);
475  Ctx->getELFSection(".apple_objc", ELF::SHT_PROGBITS, 0);
477  Ctx->getELFSection(".apple_namespaces", ELF::SHT_PROGBITS, 0);
479  Ctx->getELFSection(".apple_types", ELF::SHT_PROGBITS, 0);
480 
481  // String Offset and Address Sections
483  Ctx->getELFSection(".debug_str_offsets", DebugSecType, 0);
484  DwarfAddrSection = Ctx->getELFSection(".debug_addr", DebugSecType, 0);
485  DwarfRnglistsSection = Ctx->getELFSection(".debug_rnglists", DebugSecType, 0);
486  DwarfLoclistsSection = Ctx->getELFSection(".debug_loclists", DebugSecType, 0);
487 
488  // Fission Sections
490  Ctx->getELFSection(".debug_info.dwo", DebugSecType, ELF::SHF_EXCLUDE);
492  Ctx->getELFSection(".debug_types.dwo", DebugSecType, ELF::SHF_EXCLUDE);
494  Ctx->getELFSection(".debug_abbrev.dwo", DebugSecType, ELF::SHF_EXCLUDE);
496  ".debug_str.dwo", DebugSecType,
499  Ctx->getELFSection(".debug_line.dwo", DebugSecType, ELF::SHF_EXCLUDE);
501  Ctx->getELFSection(".debug_loc.dwo", DebugSecType, ELF::SHF_EXCLUDE);
502  DwarfStrOffDWOSection = Ctx->getELFSection(".debug_str_offsets.dwo",
503  DebugSecType, ELF::SHF_EXCLUDE);
505  Ctx->getELFSection(".debug_rnglists.dwo", DebugSecType, ELF::SHF_EXCLUDE);
507  Ctx->getELFSection(".debug_macinfo.dwo", DebugSecType, ELF::SHF_EXCLUDE);
509  Ctx->getELFSection(".debug_macro.dwo", DebugSecType, ELF::SHF_EXCLUDE);
510 
512  Ctx->getELFSection(".debug_loclists.dwo", DebugSecType, ELF::SHF_EXCLUDE);
513 
514  // DWP Sections
516  Ctx->getELFSection(".debug_cu_index", DebugSecType, 0);
518  Ctx->getELFSection(".debug_tu_index", DebugSecType, 0);
519 
521  Ctx->getELFSection(".llvm_stackmaps", ELF::SHT_PROGBITS, ELF::SHF_ALLOC);
522 
524  Ctx->getELFSection(".llvm_faultmaps", ELF::SHT_PROGBITS, ELF::SHF_ALLOC);
525 
527  Ctx->getELFSection(".eh_frame", EHSectionType, EHSectionFlags);
528 
529  StackSizesSection = Ctx->getELFSection(".stack_sizes", ELF::SHT_PROGBITS, 0);
530 
531  PseudoProbeSection = Ctx->getELFSection(".pseudo_probe", DebugSecType, 0);
533  Ctx->getELFSection(".pseudo_probe_desc", DebugSecType, 0);
534 }
535 
536 void MCObjectFileInfo::initGOFFMCObjectFileInfo(const Triple &T) {
537  TextSection =
538  Ctx->getGOFFSection(".text", SectionKind::getText(), nullptr, nullptr);
539  BSSSection =
540  Ctx->getGOFFSection(".bss", SectionKind::getBSS(), nullptr, nullptr);
541  PPA1Section =
544 }
545 
546 void MCObjectFileInfo::initCOFFMCObjectFileInfo(const Triple &T) {
551 
552  // Set the `IMAGE_SCN_MEM_16BIT` flag when compiling for thumb mode. This is
553  // used to indicate to the linker that the text segment contains thumb instructions
554  // and to set the ISA selection bit for calls accordingly.
555  const bool IsThumb = T.getArch() == Triple::thumb;
556 
558 
559  // COFF
560  BSSSection = Ctx->getCOFFSection(
565  ".text",
577 
578  if (T.getArch() == Triple::x86_64 || T.getArch() == Triple::aarch64 ||
579  T.getArch() == Triple::arm || T.getArch() == Triple::thumb) {
580  // On Windows with SEH, the LSDA is emitted into the .xdata section
581  LSDASection = nullptr;
582  } else {
583  LSDASection = Ctx->getCOFFSection(".gcc_except_table",
587  }
588 
589  // Debug info.
601  ".debug$H",
605 
607  ".debug_abbrev",
610  SectionKind::getMetadata(), "section_abbrev");
612  ".debug_info",
615  SectionKind::getMetadata(), "section_info");
617  ".debug_line",
620  SectionKind::getMetadata(), "section_line");
622  ".debug_line_str",
625  SectionKind::getMetadata(), "section_line_str");
627  ".debug_frame",
632  ".debug_pubnames",
637  ".debug_pubtypes",
642  ".debug_gnu_pubnames",
647  ".debug_gnu_pubtypes",
652  ".debug_str",
655  SectionKind::getMetadata(), "info_string");
657  ".debug_str_offsets",
660  SectionKind::getMetadata(), "section_str_off");
662  ".debug_loc",
665  SectionKind::getMetadata(), "section_debug_loc");
667  ".debug_loclists",
670  SectionKind::getMetadata(), "section_debug_loclists");
672  ".debug_aranges",
677  ".debug_ranges",
680  SectionKind::getMetadata(), "debug_range");
682  ".debug_rnglists",
685  SectionKind::getMetadata(), "debug_rnglists");
687  ".debug_macinfo",
690  SectionKind::getMetadata(), "debug_macinfo");
692  ".debug_macro",
695  SectionKind::getMetadata(), "debug_macro");
697  ".debug_macinfo.dwo",
700  SectionKind::getMetadata(), "debug_macinfo.dwo");
702  ".debug_macro.dwo",
705  SectionKind::getMetadata(), "debug_macro.dwo");
707  ".debug_info.dwo",
710  SectionKind::getMetadata(), "section_info_dwo");
712  ".debug_types.dwo",
715  SectionKind::getMetadata(), "section_types_dwo");
717  ".debug_abbrev.dwo",
720  SectionKind::getMetadata(), "section_abbrev_dwo");
722  ".debug_str.dwo",
725  SectionKind::getMetadata(), "skel_string");
727  ".debug_line.dwo",
732  ".debug_loc.dwo",
735  SectionKind::getMetadata(), "skel_loc");
737  ".debug_str_offsets.dwo",
740  SectionKind::getMetadata(), "section_str_off_dwo");
742  ".debug_addr",
745  SectionKind::getMetadata(), "addr_sec");
747  ".debug_cu_index",
752  ".debug_tu_index",
757  ".debug_names",
760  SectionKind::getMetadata(), "debug_names_begin");
762  ".apple_names",
765  SectionKind::getMetadata(), "names_begin");
767  ".apple_namespaces",
770  SectionKind::getMetadata(), "namespac_begin");
772  ".apple_types",
775  SectionKind::getMetadata(), "types_begin");
777  ".apple_objc",
780  SectionKind::getMetadata(), "objc_begin");
781 
785 
789 
793 
796 
797  GEHContSection = Ctx->getCOFFSection(".gehcont$y",
801 
802  GFIDsSection = Ctx->getCOFFSection(".gfids$y",
806 
807  GIATsSection = Ctx->getCOFFSection(".giats$y",
811 
812  GLJMPSection = Ctx->getCOFFSection(".gljmp$y",
816 
821 
822  StackMapSection = Ctx->getCOFFSection(".llvm_stackmaps",
826 }
827 
828 void MCObjectFileInfo::initSPIRVMCObjectFileInfo(const Triple &T) {
829  // Put everything in a single binary section.
830  TextSection = Ctx->getSPIRVSection();
831 }
832 
833 void MCObjectFileInfo::initWasmMCObjectFileInfo(const Triple &T) {
836 
838  Ctx->getWasmSection(".debug_line", SectionKind::getMetadata());
840  Ctx->getWasmSection(".debug_line_str", SectionKind::getMetadata(),
845  Ctx->getWasmSection(".debug_loc", SectionKind::getMetadata());
847  Ctx->getWasmSection(".debug_abbrev", SectionKind::getMetadata());
848  DwarfARangesSection = Ctx->getWasmSection(".debug_aranges", SectionKind::getMetadata());
850  Ctx->getWasmSection(".debug_ranges", SectionKind::getMetadata());
852  Ctx->getWasmSection(".debug_macinfo", SectionKind::getMetadata());
854  Ctx->getWasmSection(".debug_macro", SectionKind::getMetadata());
855  DwarfCUIndexSection = Ctx->getWasmSection(".debug_cu_index", SectionKind::getMetadata());
856  DwarfTUIndexSection = Ctx->getWasmSection(".debug_tu_index", SectionKind::getMetadata());
858  Ctx->getWasmSection(".debug_info", SectionKind::getMetadata());
860  DwarfPubNamesSection = Ctx->getWasmSection(".debug_pubnames", SectionKind::getMetadata());
861  DwarfPubTypesSection = Ctx->getWasmSection(".debug_pubtypes", SectionKind::getMetadata());
863  Ctx->getWasmSection(".debug_gnu_pubnames", SectionKind::getMetadata());
865  Ctx->getWasmSection(".debug_gnu_pubtypes", SectionKind::getMetadata());
866 
868  Ctx->getWasmSection(".debug_names", SectionKind::getMetadata());
870  Ctx->getWasmSection(".debug_str_offsets", SectionKind::getMetadata());
872  Ctx->getWasmSection(".debug_addr", SectionKind::getMetadata());
874  Ctx->getWasmSection(".debug_rnglists", SectionKind::getMetadata());
876  Ctx->getWasmSection(".debug_loclists", SectionKind::getMetadata());
877 
878  // Fission Sections
880  Ctx->getWasmSection(".debug_info.dwo", SectionKind::getMetadata());
882  Ctx->getWasmSection(".debug_types.dwo", SectionKind::getMetadata());
884  Ctx->getWasmSection(".debug_abbrev.dwo", SectionKind::getMetadata());
886  Ctx->getWasmSection(".debug_str.dwo", SectionKind::getMetadata(),
889  Ctx->getWasmSection(".debug_line.dwo", SectionKind::getMetadata());
891  Ctx->getWasmSection(".debug_loc.dwo", SectionKind::getMetadata());
893  Ctx->getWasmSection(".debug_str_offsets.dwo", SectionKind::getMetadata());
895  Ctx->getWasmSection(".debug_rnglists.dwo", SectionKind::getMetadata());
897  Ctx->getWasmSection(".debug_macinfo.dwo", SectionKind::getMetadata());
899  Ctx->getWasmSection(".debug_macro.dwo", SectionKind::getMetadata());
900 
902  Ctx->getWasmSection(".debug_loclists.dwo", SectionKind::getMetadata());
903 
904  // DWP Sections
906  Ctx->getWasmSection(".debug_cu_index", SectionKind::getMetadata());
908  Ctx->getWasmSection(".debug_tu_index", SectionKind::getMetadata());
909 
910  // Wasm use data section for LSDA.
911  // TODO Consider putting each function's exception table in a separate
912  // section, as in -function-sections, to facilitate lld's --gc-section.
913  LSDASection = Ctx->getWasmSection(".rodata.gcc_except_table",
915 
916  // TODO: Define more sections.
917 }
918 
919 void MCObjectFileInfo::initXCOFFMCObjectFileInfo(const Triple &T) {
920  // The default csect for program code. Functions without a specified section
921  // get placed into this csect. The choice of csect name is not a property of
922  // the ABI or object file format. For example, the XL compiler uses an unnamed
923  // csect for program code.
925  ".text", SectionKind::getText(),
927  /* MultiSymbolsAllowed*/ true);
928 
930  ".data", SectionKind::getData(),
932  /* MultiSymbolsAllowed*/ true);
933 
935  ".rodata", SectionKind::getReadOnly(),
937  /* MultiSymbolsAllowed*/ true);
939 
941  ".rodata.8", SectionKind::getReadOnly(),
943  /* MultiSymbolsAllowed*/ true);
945 
947  ".rodata.16", SectionKind::getReadOnly(),
949  /* MultiSymbolsAllowed*/ true);
951 
953  ".tdata", SectionKind::getThreadData(),
955  /* MultiSymbolsAllowed*/ true);
956 
958  "TOC", SectionKind::getData(),
960  XCOFF::XTY_SD));
961 
962  // The TOC-base always has 0 size, but 4 byte alignment.
964 
966  ".gcc_except_table", SectionKind::getReadOnly(),
968  XCOFF::XTY_SD));
969 
971  ".eh_info_table", SectionKind::getData(),
973  XCOFF::XTY_SD));
974 
975  // DWARF sections for XCOFF are not csects. They are special STYP_DWARF
976  // sections, and the individual DWARF sections are distinguished by their
977  // section subtype.
979  ".dwabrev", SectionKind::getMetadata(), /* CsectProperties */ None,
980  /* MultiSymbolsAllowed */ true, ".dwabrev", XCOFF::SSUBTYP_DWABREV);
981 
983  ".dwinfo", SectionKind::getMetadata(), /* CsectProperties */ None,
984  /* MultiSymbolsAllowed */ true, ".dwinfo", XCOFF::SSUBTYP_DWINFO);
985 
987  ".dwline", SectionKind::getMetadata(), /* CsectProperties */ None,
988  /* MultiSymbolsAllowed */ true, ".dwline", XCOFF::SSUBTYP_DWLINE);
989 
991  ".dwframe", SectionKind::getMetadata(), /* CsectProperties */ None,
992  /* MultiSymbolsAllowed */ true, ".dwframe", XCOFF::SSUBTYP_DWFRAME);
993 
995  ".dwpbnms", SectionKind::getMetadata(), /* CsectProperties */ None,
996  /* MultiSymbolsAllowed */ true, ".dwpbnms", XCOFF::SSUBTYP_DWPBNMS);
997 
999  ".dwpbtyp", SectionKind::getMetadata(), /* CsectProperties */ None,
1000  /* MultiSymbolsAllowed */ true, ".dwpbtyp", XCOFF::SSUBTYP_DWPBTYP);
1001 
1003  ".dwstr", SectionKind::getMetadata(), /* CsectProperties */ None,
1004  /* MultiSymbolsAllowed */ true, ".dwstr", XCOFF::SSUBTYP_DWSTR);
1005 
1007  ".dwloc", SectionKind::getMetadata(), /* CsectProperties */ None,
1008  /* MultiSymbolsAllowed */ true, ".dwloc", XCOFF::SSUBTYP_DWLOC);
1009 
1011  ".dwarnge", SectionKind::getMetadata(), /* CsectProperties */ None,
1012  /* MultiSymbolsAllowed */ true, ".dwarnge", XCOFF::SSUBTYP_DWARNGE);
1013 
1015  ".dwrnges", SectionKind::getMetadata(), /* CsectProperties */ None,
1016  /* MultiSymbolsAllowed */ true, ".dwrnges", XCOFF::SSUBTYP_DWRNGES);
1017 
1019  ".dwmac", SectionKind::getMetadata(), /* CsectProperties */ None,
1020  /* MultiSymbolsAllowed */ true, ".dwmac", XCOFF::SSUBTYP_DWMAC);
1021 }
1022 
1023 void MCObjectFileInfo::initDXContainerObjectFileInfo(const Triple &T) {
1024  // At the moment the DXBC section should end up empty.
1026 }
1027 
1029 
1031  bool LargeCodeModel) {
1032  PositionIndependent = PIC;
1033  Ctx = &MCCtx;
1034 
1035  // Common.
1040 
1042 
1044 
1045  EHFrameSection = nullptr; // Created on demand.
1046  CompactUnwindSection = nullptr; // Used only by selected targets.
1047  DwarfAccelNamesSection = nullptr; // Used only by selected targets.
1048  DwarfAccelObjCSection = nullptr; // Used only by selected targets.
1049  DwarfAccelNamespaceSection = nullptr; // Used only by selected targets.
1050  DwarfAccelTypesSection = nullptr; // Used only by selected targets.
1051 
1052  Triple TheTriple = Ctx->getTargetTriple();
1053  switch (Ctx->getObjectFileType()) {
1054  case MCContext::IsMachO:
1055  initMachOMCObjectFileInfo(TheTriple);
1056  break;
1057  case MCContext::IsCOFF:
1058  initCOFFMCObjectFileInfo(TheTriple);
1059  break;
1060  case MCContext::IsELF:
1061  initELFMCObjectFileInfo(TheTriple, LargeCodeModel);
1062  break;
1063  case MCContext::IsGOFF:
1064  initGOFFMCObjectFileInfo(TheTriple);
1065  break;
1066  case MCContext::IsSPIRV:
1067  initSPIRVMCObjectFileInfo(TheTriple);
1068  break;
1069  case MCContext::IsWasm:
1070  initWasmMCObjectFileInfo(TheTriple);
1071  break;
1072  case MCContext::IsXCOFF:
1073  initXCOFFMCObjectFileInfo(TheTriple);
1074  break;
1076  initDXContainerObjectFileInfo(TheTriple);
1077  break;
1078  }
1079 }
1080 
1081 MCSection *MCObjectFileInfo::getDwarfComdatSection(const char *Name,
1082  uint64_t Hash) const {
1083  switch (Ctx->getTargetTriple().getObjectFormat()) {
1084  case Triple::ELF:
1086  utostr(Hash), /*IsComdat=*/true);
1087  case Triple::Wasm:
1088  return Ctx->getWasmSection(Name, SectionKind::getMetadata(), 0,
1089  utostr(Hash), MCContext::GenericSectionID);
1090  case Triple::MachO:
1091  case Triple::COFF:
1092  case Triple::GOFF:
1093  case Triple::SPIRV:
1094  case Triple::XCOFF:
1095  case Triple::DXContainer:
1097  report_fatal_error("Cannot get DWARF comdat section for this object file "
1098  "format: not implemented.");
1099  break;
1100  }
1101  llvm_unreachable("Unknown ObjectFormatType");
1102 }
1103 
1104 MCSection *
1106  if (Ctx->getObjectFileType() != MCContext::IsELF)
1107  return StackSizesSection;
1108 
1109  const MCSectionELF &ElfSec = static_cast<const MCSectionELF &>(TextSec);
1110  unsigned Flags = ELF::SHF_LINK_ORDER;
1111  StringRef GroupName;
1112  if (const MCSymbol *Group = ElfSec.getGroup()) {
1113  GroupName = Group->getName();
1114  Flags |= ELF::SHF_GROUP;
1115  }
1116 
1117  return Ctx->getELFSection(".stack_sizes", ELF::SHT_PROGBITS, Flags, 0,
1118  GroupName, true, ElfSec.getUniqueID(),
1119  cast<MCSymbolELF>(TextSec.getBeginSymbol()));
1120 }
1121 
1122 MCSection *
1124  if (Ctx->getObjectFileType() != MCContext::IsELF)
1125  return nullptr;
1126 
1127  const MCSectionELF &ElfSec = static_cast<const MCSectionELF &>(TextSec);
1128  unsigned Flags = ELF::SHF_LINK_ORDER;
1129  StringRef GroupName;
1130  if (const MCSymbol *Group = ElfSec.getGroup()) {
1131  GroupName = Group->getName();
1132  Flags |= ELF::SHF_GROUP;
1133  }
1134 
1135  // Use the text section's begin symbol and unique ID to create a separate
1136  // .llvm_bb_addr_map section associated with every unique text section.
1137  return Ctx->getELFSection(".llvm_bb_addr_map", ELF::SHT_LLVM_BB_ADDR_MAP,
1138  Flags, 0, GroupName, true, ElfSec.getUniqueID(),
1139  cast<MCSymbolELF>(TextSec.getBeginSymbol()));
1140 }
1141 
1142 MCSection *
1144  if (Ctx->getObjectFileType() == MCContext::IsELF) {
1145  const auto *ElfSec = static_cast<const MCSectionELF *>(TextSec);
1146  // Create a separate section for probes that comes with a comdat function.
1147  if (const MCSymbol *Group = ElfSec->getGroup()) {
1148  auto *S = static_cast<MCSectionELF *>(PseudoProbeSection);
1149  auto Flags = S->getFlags() | ELF::SHF_GROUP;
1150  return Ctx->getELFSection(S->getName(), S->getType(), Flags,
1151  S->getEntrySize(), Group->getName(),
1152  /*IsComdat=*/true);
1153  }
1154  }
1155  return PseudoProbeSection;
1156 }
1157 
1158 MCSection *
1160  if (Ctx->getObjectFileType() == MCContext::IsELF) {
1161  // Create a separate comdat group for each function's descriptor in order
1162  // for the linker to deduplicate. The duplication, must be from different
1163  // tranlation unit, can come from:
1164  // 1. Inline functions defined in header files;
1165  // 2. ThinLTO imported funcions;
1166  // 3. Weak-linkage definitions.
1167  // Use a concatenation of the section name and the function name as the
1168  // group name so that descriptor-only groups won't be folded with groups of
1169  // code.
1170  if (Ctx->getTargetTriple().supportsCOMDAT() && !FuncName.empty()) {
1171  auto *S = static_cast<MCSectionELF *>(PseudoProbeDescSection);
1172  auto Flags = S->getFlags() | ELF::SHF_GROUP;
1173  return Ctx->getELFSection(S->getName(), S->getType(), Flags,
1174  S->getEntrySize(),
1175  S->getName() + "_" + FuncName,
1176  /*IsComdat=*/true);
1177  }
1178  }
1179  return PseudoProbeDescSection;
1180 }
llvm::MachO::S_CSTRING_LITERALS
@ S_CSTRING_LITERALS
S_CSTRING_LITERALS - Section with literal C strings.
Definition: MachO.h:129
llvm::MCObjectFileInfo::TextCoalSection
MCSection * TextCoalSection
Definition: MCObjectFileInfo.h:203
llvm::Triple::DXContainer
@ DXContainer
Definition: Triple.h:273
llvm::MCObjectFileInfo::DwarfLineDWOSection
MCSection * DwarfLineDWOSection
Definition: MCObjectFileInfo.h:113
llvm::MCObjectFileInfo::CompactUnwindSection
MCSection * CompactUnwindSection
If exception handling is supported by the target and the target can support a compact representation ...
Definition: MCObjectFileInfo.h:77
llvm::MCObjectFileInfo::ConstTextCoalSection
MCSection * ConstTextCoalSection
Definition: MCObjectFileInfo.h:204
llvm::MCObjectFileInfo::DwarfSwiftASTSection
MCSection * DwarfSwiftASTSection
Definition: MCObjectFileInfo.h:141
llvm::MCSectionELF::getUniqueID
unsigned getUniqueID() const
Definition: MCSectionELF.h:87
llvm::Triple::Wasm
@ Wasm
Definition: Triple.h:278
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:53
llvm::MCContext::GenericSectionID
@ GenericSectionID
Pass this value as the UniqueID during section creation to get the generic section with the given nam...
Definition: MCContext.h:546
llvm::SectionKind::getReadOnlyWithRel
static SectionKind getReadOnlyWithRel()
Definition: SectionKind.h:214
llvm::SectionKind::getMergeable2ByteCString
static SectionKind getMergeable2ByteCString()
Definition: SectionKind.h:196
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::MCObjectFileInfo::DwarfAbbrevDWOSection
MCSection * DwarfAbbrevDWOSection
Definition: MCObjectFileInfo.h:111
llvm::MCObjectFileInfo::XDataSection
MCSection * XDataSection
Definition: MCObjectFileInfo.h:221
llvm::XCOFF::SSUBTYP_DWARNGE
@ SSUBTYP_DWARNGE
DWARF aranges section.
Definition: XCOFF.h:143
llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA
@ IMAGE_SCN_CNT_UNINITIALIZED_DATA
Definition: COFF.h:289
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
llvm::MCObjectFileInfo::DwarfRnglistsDWOSection
MCSection * DwarfRnglistsDWOSection
The DWARF v5 range and location list sections for fission.
Definition: MCObjectFileInfo.h:128
llvm::dwarf::DW_EH_PE_sdata4
@ DW_EH_PE_sdata4
Definition: Dwarf.h:445
llvm::Triple::bpfeb
@ bpfeb
Definition: Triple.h:57
llvm::MCObjectFileInfo::OmitDwarfIfHaveCompactUnwind
bool OmitDwarfIfHaveCompactUnwind
OmitDwarfIfHaveCompactUnwind - True if the target object file supports having some functions with com...
Definition: MCObjectFileInfo.h:44
llvm::SectionKind::getMetadata
static SectionKind getMetadata()
Definition: SectionKind.h:188
llvm::ELF::SHF_WRITE
@ SHF_WRITE
Definition: ELF.h:1035
llvm::MCObjectFileInfo::EightByteConstantSection
MCSection * EightByteConstantSection
Definition: MCObjectFileInfo.h:211
llvm::ELF::SHF_STRINGS
@ SHF_STRINGS
Definition: ELF.h:1047
llvm::MCObjectFileInfo::MergeableConst16Section
MCSection * MergeableConst16Section
Definition: MCObjectFileInfo.h:186
llvm::MCObjectFileInfo::ReadOnlySection
MCSection * ReadOnlySection
Section that is readonly and can contain arbitrary initialized data.
Definition: MCObjectFileInfo.h:68
T
llvm::MCContext
Context object for machine code objects.
Definition: MCContext.h:76
llvm::MCObjectFileInfo::NonLazySymbolPointerSection
MCSection * NonLazySymbolPointerSection
Definition: MCObjectFileInfo.h:214
llvm::MCObjectFileInfo::DwarfLineSection
MCSection * DwarfLineSection
Definition: MCObjectFileInfo.h:83
llvm::XCOFF::SSUBTYP_DWLOC
@ SSUBTYP_DWLOC
DWARF loc section.
Definition: XCOFF.h:147
llvm::MCContext::IsSPIRV
@ IsSPIRV
Definition: MCContext.h:87
llvm::MCObjectFileInfo::GFIDsSection
MCSection * GFIDsSection
Definition: MCObjectFileInfo.h:224
llvm::MCConstantExpr::create
static const MCConstantExpr * create(int64_t Value, MCContext &Ctx, bool PrintInHex=false, unsigned SizeInBytes=0)
Definition: MCExpr.cpp:194
llvm::MCObjectFileInfo::DwarfLocDWOSection
MCSection * DwarfLocDWOSection
Definition: MCObjectFileInfo.h:114
MCSectionELF.h
llvm::MCSection::getBeginSymbol
MCSymbol * getBeginSymbol()
Definition: MCSection.h:129
llvm::MCObjectFileInfo::SixteenByteConstantSection
MCSection * SixteenByteConstantSection
Definition: MCObjectFileInfo.h:212
llvm::MCObjectFileInfo::DwarfAddrSection
MCSection * DwarfAddrSection
Definition: MCObjectFileInfo.h:121
llvm::MCObjectFileInfo::CommDirectiveSupportsAlignment
bool CommDirectiveSupportsAlignment
True if .comm supports alignment.
Definition: MCObjectFileInfo.h:31
llvm::MCObjectFileInfo::FourByteConstantSection
MCSection * FourByteConstantSection
Definition: MCObjectFileInfo.h:210
llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE
@ IMAGE_SCN_MEM_DISCARDABLE
Definition: COFF.h:315
MCSectionCOFF.h
llvm::XCOFF::SSUBTYP_DWPBTYP
@ SSUBTYP_DWPBTYP
DWARF pubtypes section.
Definition: XCOFF.h:142
llvm::XCOFF::SSUBTYP_DWLINE
@ SSUBTYP_DWLINE
DWARF line section.
Definition: XCOFF.h:140
llvm::XCOFF::XMC_PR
@ XMC_PR
Program Code.
Definition: XCOFF.h:89
llvm::MCObjectFileInfo::ThreadLocalPointerSection
MCSection * ThreadLocalPointerSection
Definition: MCObjectFileInfo.h:215
llvm::MCSectionELF::getGroup
const MCSymbolELF * getGroup() const
Definition: MCSectionELF.h:76
llvm::dwarf::DW_EH_PE_sdata8
@ DW_EH_PE_sdata8
Definition: Dwarf.h:446
llvm::ELF::SHF_TLS
@ SHF_TLS
Definition: ELF.h:1063
llvm::MCObjectFileInfo::DataBSSSection
MCSection * DataBSSSection
Definition: MCObjectFileInfo.h:209
llvm::Triple
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:44
COFF.h
MCObjectFileInfo.h
llvm::MCObjectFileInfo::DwarfAbbrevSection
MCSection * DwarfAbbrevSection
Definition: MCObjectFileInfo.h:81
llvm::MCObjectFileInfo::AddrSigSection
MCSection * AddrSigSection
Definition: MCObjectFileInfo.h:216
llvm::Triple::x86_64
@ x86_64
Definition: Triple.h:86
llvm::MCObjectFileInfo::DwarfDebugNamesSection
MCSection * DwarfDebugNamesSection
Accelerator table sections.
Definition: MCObjectFileInfo.h:102
llvm::ELF::SHT_MIPS_DWARF
@ SHT_MIPS_DWARF
Definition: ELF.h:1018
llvm::SectionKind::getMergeableConst16
static SectionKind getMergeableConst16()
Definition: SectionKind.h:204
llvm::EmitDwarfUnwindType::NoCompactUnwind
@ NoCompactUnwind
PIC
PassInstrumentationCallbacks PIC
Definition: PassBuilderBindings.cpp:55
llvm::MCObjectFileInfo::DwarfTUIndexSection
MCSection * DwarfTUIndexSection
Definition: MCObjectFileInfo.h:133
llvm::Triple::SPIRV
@ SPIRV
Definition: Triple.h:277
llvm::Triple::ppc
@ ppc
Definition: Triple.h:69
llvm::MCAsmInfo::getCodePointerSize
unsigned getCodePointerSize() const
Get the code pointer size in bytes.
Definition: MCAsmInfo.h:548
llvm::MCObjectFileInfo::getPseudoProbeSection
MCSection * getPseudoProbeSection(const MCSection *TextSec) const
Definition: MCObjectFileInfo.cpp:1143
llvm::XCOFF::SSUBTYP_DWRNGES
@ SSUBTYP_DWRNGES
DWARF ranges section.
Definition: XCOFF.h:146
llvm::Triple::hexagon
@ hexagon
Definition: Triple.h:60
llvm::Triple::XCOFF
@ XCOFF
Definition: Triple.h:279
llvm::MachO::S_ZEROFILL
@ S_ZEROFILL
S_ZEROFILL - Zero fill on demand section.
Definition: MachO.h:127
llvm::MCObjectFileInfo::ConstDataCoalSection
MCSection * ConstDataCoalSection
Definition: MCObjectFileInfo.h:207
llvm::ELF::SHF_ALLOC
@ SHF_ALLOC
Definition: ELF.h:1038
llvm::MCObjectFileInfo::LazySymbolPointerSection
MCSection * LazySymbolPointerSection
Definition: MCObjectFileInfo.h:213
llvm::MCObjectFileInfo::TLSExtraDataSection
MCSection * TLSExtraDataSection
Extra TLS Variable Data section.
Definition: MCObjectFileInfo.h:151
llvm::MCContext::IsMachO
@ IsMachO
Definition: MCContext.h:83
llvm::MCSectionELF
This represents a section on linux, lots of unix variants and some bare metal systems.
Definition: MCSectionELF.h:26
llvm::GOFF::SK_PPA1
@ SK_PPA1
Definition: GOFF.h:26
llvm::MCObjectFileInfo::DwarfPubNamesSection
MCSection * DwarfPubNamesSection
Definition: MCObjectFileInfo.h:96
llvm::MCObjectFileInfo::DwarfPubTypesSection
MCSection * DwarfPubTypesSection
Definition: MCObjectFileInfo.h:86
llvm::MachO::S_8BYTE_LITERALS
@ S_8BYTE_LITERALS
S_8BYTE_LITERALS - Section with 8 byte literals.
Definition: MachO.h:133
llvm::MCObjectFileInfo::SXDataSection
MCSection * SXDataSection
Definition: MCObjectFileInfo.h:222
llvm::Triple::aarch64_32
@ aarch64_32
Definition: Triple.h:53
llvm::XCOFF::SSUBTYP_DWMAC
@ SSUBTYP_DWMAC
DWARF macinfo section.
Definition: XCOFF.h:149
llvm::Triple::mips64
@ mips64
Definition: Triple.h:66
llvm::MCObjectFileInfo::DwarfFrameSection
MCSection * DwarfFrameSection
Definition: MCObjectFileInfo.h:85
llvm::MCObjectFileInfo::DwarfARangesSection
MCSection * DwarfARangesSection
Definition: MCObjectFileInfo.h:90
llvm::MCObjectFileInfo::DwarfStrSection
MCSection * DwarfStrSection
Definition: MCObjectFileInfo.h:88
llvm::XCOFF::CsectProperties
Definition: XCOFF.h:455
llvm::MCContext::getMachOSection
MCSectionMachO * getMachOSection(StringRef Segment, StringRef Section, unsigned TypeAndAttributes, unsigned Reserved2, SectionKind K, const char *BeginSymName=nullptr)
Return the MCSection for the specified mach-o section.
Definition: MCContext.cpp:441
llvm::MachO::S_ATTR_STRIP_STATIC_SYMS
@ 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...
Definition: MachO.h:193
llvm::MCObjectFileInfo::ReadOnly8Section
MCSection * ReadOnly8Section
Definition: MCObjectFileInfo.h:233
llvm::SectionKind::getReadOnly
static SectionKind getReadOnly()
Definition: SectionKind.h:192
llvm::MCContext::IsWasm
@ IsWasm
Definition: MCContext.h:88
llvm::EmitDwarfUnwindType::Default
@ Default
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:72
llvm::COFF::IMAGE_SCN_LNK_INFO
@ IMAGE_SCN_LNK_INFO
Definition: COFF.h:291
llvm::MCContext::IsXCOFF
@ IsXCOFF
Definition: MCContext.h:89
llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA
@ IMAGE_SCN_CNT_INITIALIZED_DATA
Definition: COFF.h:288
llvm::MachO::S_COALESCED
@ S_COALESCED
S_COALESCED - Section contains symbols that are to be coalesced.
Definition: MachO.h:150
llvm::SectionKind::getThreadBSS
static SectionKind getThreadBSS()
Definition: SectionKind.h:206
llvm::MCContext::emitDwarfUnwindInfo
EmitDwarfUnwindType emitDwarfUnwindInfo() const
Definition: MCContext.cpp:906
ELF.h
llvm::XCOFF::XMC_RO
@ XMC_RO
Read Only Constant.
Definition: XCOFF.h:90
llvm::Triple::ArchType
ArchType
Definition: Triple.h:46
llvm::MCContext::getSPIRVSection
MCSectionSPIRV * getSPIRVSection()
Definition: MCContext.cpp:829
llvm::XCOFF::SSUBTYP_DWPBNMS
@ SSUBTYP_DWPBNMS
DWARF pubnames section.
Definition: XCOFF.h:141
llvm::COFF::IMAGE_SCN_LNK_REMOVE
@ IMAGE_SCN_LNK_REMOVE
Definition: COFF.h:292
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:39
llvm::MCObjectFileInfo::PPA1Section
MCSection * PPA1Section
Definition: MCObjectFileInfo.h:229
llvm::MCContext::getGOFFSection
MCSectionGOFF * getGOFFSection(StringRef Section, SectionKind Kind, MCSection *Parent, const MCExpr *SubsectionId)
Definition: MCContext.cpp:640
llvm::MCObjectFileInfo::MergeableConst8Section
MCSection * MergeableConst8Section
Definition: MCObjectFileInfo.h:185
llvm::Triple::mips64el
@ mips64el
Definition: Triple.h:67
MCContext.h
llvm::COFF::IMAGE_SCN_MEM_READ
@ IMAGE_SCN_MEM_READ
Definition: COFF.h:320
MCSectionMachO.h
llvm::MCObjectFileInfo::FDECFIEncoding
unsigned FDECFIEncoding
FDE CFI encoding.
Definition: MCObjectFileInfo.h:50
llvm::MCObjectFileInfo::TLSThreadInitSection
const MCSection * TLSThreadInitSection
Section for thread local data initialization functions.
Definition: MCObjectFileInfo.h:199
llvm::MCContext::getELFSection
MCSectionELF * getELFSection(const Twine &Section, unsigned Type, unsigned Flags)
Definition: MCContext.h:563
llvm::SectionKind::getBSS
static SectionKind getBSS()
Definition: SectionKind.h:209
llvm::MCObjectFileInfo::DwarfAccelTypesSection
MCSection * DwarfAccelTypesSection
Definition: MCObjectFileInfo.h:106
llvm::Triple::supportsCOMDAT
bool supportsCOMDAT() const
Tests whether the target supports comdat.
Definition: Triple.h:916
llvm::MCContext::getObjectFileType
Environment getObjectFileType() const
Definition: MCContext.h:429
llvm::MCObjectFileInfo::DwarfStrOffDWOSection
MCSection * DwarfStrOffDWOSection
Definition: MCObjectFileInfo.h:115
llvm::Triple::ppc64
@ ppc64
Definition: Triple.h:71
llvm::MCObjectFileInfo::getStackSizesSection
MCSection * getStackSizesSection(const MCSection &TextSec) const
Definition: MCObjectFileInfo.cpp:1105
llvm::MCObjectFileInfo::GLJMPSection
MCSection * GLJMPSection
Definition: MCObjectFileInfo.h:226
llvm::MCObjectFileInfo::DwarfStrDWOSection
MCSection * DwarfStrDWOSection
Definition: MCObjectFileInfo.h:112
llvm::Triple::getObjectFormat
ObjectFormatType getObjectFormat() const
Get the object format for this triple.
Definition: Triple.h:371
llvm::report_fatal_error
void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
Definition: Error.cpp:143
llvm::MCContext::getXCOFFSection
MCSectionXCOFF * getXCOFFSection(StringRef Section, SectionKind K, Optional< XCOFF::CsectProperties > CsectProp=None, bool MultiSymbolsAllowed=false, const char *BeginSymName=nullptr, Optional< XCOFF::DwarfSectionSubtypeFlags > DwarfSubtypeFlags=None)
Definition: MCContext.cpp:765
llvm::MCContext::getDXContainerSection
MCSectionDXContainer * getDXContainerSection(StringRef Section, SectionKind K)
Get the section for the provided Section name.
Definition: MCContext.cpp:844
llvm::MCObjectFileInfo::PDataSection
MCSection * PDataSection
Definition: MCObjectFileInfo.h:220
llvm::MCContext::IsDXContainer
@ IsDXContainer
Definition: MCContext.h:90
Align
uint64_t Align
Definition: ELFObjHandler.cpp:81
llvm::SectionKind::getText
static SectionKind getText()
Definition: SectionKind.h:190
llvm::XCOFF::XTY_SD
@ XTY_SD
Csect definition for initialized storage.
Definition: XCOFF.h:226
llvm::XCOFF::SSUBTYP_DWABREV
@ SSUBTYP_DWABREV
DWARF abbrev section.
Definition: XCOFF.h:144
llvm::MCObjectFileInfo::TLSDataSection
MCSection * TLSDataSection
Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.
Definition: MCObjectFileInfo.h:154
llvm::MCObjectFileInfo::DwarfRangesSection
MCSection * DwarfRangesSection
Definition: MCObjectFileInfo.h:91
llvm::MachO::S_LAZY_SYMBOL_POINTERS
@ S_LAZY_SYMBOL_POINTERS
S_LAZY_SYMBOL_POINTERS - Section with lazy symbol pointers.
Definition: MachO.h:139
llvm::Triple::GOFF
@ GOFF
Definition: Triple.h:275
MCSectionXCOFF.h
llvm::MCContext::getTargetTriple
const Triple & getTargetTriple() const
Definition: MCContext.h:434
llvm::None
const NoneType None
Definition: None.h:24
llvm::MCObjectFileInfo::ConstDataSection
MCSection * ConstDataSection
Definition: MCObjectFileInfo.h:205
llvm::MCContext::getWasmSection
MCSectionWasm * getWasmSection(const Twine &Section, SectionKind K, unsigned Flags=0)
Definition: MCContext.h:646
llvm::MCObjectFileInfo::DwarfLoclistsSection
MCSection * DwarfLoclistsSection
The DWARF v5 locations list section.
Definition: MCObjectFileInfo.h:125
llvm::MCObjectFileInfo::getPseudoProbeDescSection
MCSection * getPseudoProbeDescSection(StringRef FuncName) const
Definition: MCObjectFileInfo.cpp:1159
llvm::MCObjectFileInfo::COFFGlobalTypeHashesSection
MCSection * COFFGlobalTypeHashesSection
Definition: MCObjectFileInfo.h:145
llvm::ELF::SHT_NOBITS
@ SHT_NOBITS
Definition: ELF.h:962
llvm::MachO::S_NON_LAZY_SYMBOL_POINTERS
@ S_NON_LAZY_SYMBOL_POINTERS
S_NON_LAZY_SYMBOL_POINTERS - Section with non-lazy symbol pointers.
Definition: MachO.h:137
llvm::ELF::SHF_GROUP
@ SHF_GROUP
Definition: ELF.h:1060
llvm::Triple::ppc64le
@ ppc64le
Definition: Triple.h:72
llvm::SectionKind::getMergeable1ByteCString
static SectionKind getMergeable1ByteCString()
Definition: SectionKind.h:193
llvm::Triple::ELF
@ ELF
Definition: Triple.h:274
llvm::MCObjectFileInfo::FaultMapSection
MCSection * FaultMapSection
FaultMap section.
Definition: MCObjectFileInfo.h:165
llvm::MCObjectFileInfo::DwarfMacinfoSection
MCSection * DwarfMacinfoSection
Definition: MCObjectFileInfo.h:92
llvm::StringRef::empty
constexpr LLVM_NODISCARD bool empty() const
empty - Check if the string is empty.
Definition: StringRef.h:153
uint64_t
llvm::dwarf::DW_EH_PE_pcrel
@ DW_EH_PE_pcrel
Definition: Dwarf.h:448
llvm::MCContext::getAsmInfo
const MCAsmInfo * getAsmInfo() const
Definition: MCContext.h:446
llvm::MCObjectFileInfo::UStringSection
MCSection * UStringSection
Definition: MCObjectFileInfo.h:202
llvm::MCContext::IsELF
@ IsELF
Definition: MCContext.h:84
llvm::MCObjectFileInfo::CStringSection
MCSection * CStringSection
Definition: MCObjectFileInfo.h:201
llvm::MCObjectFileInfo::DwarfMacroSection
MCSection * DwarfMacroSection
Definition: MCObjectFileInfo.h:93
llvm::XCOFF::XMC_TL
@ XMC_TL
Initialized thread-local variable.
Definition: XCOFF.h:110
llvm::MachO::S_ATTR_PURE_INSTRUCTIONS
@ S_ATTR_PURE_INSTRUCTIONS
S_ATTR_PURE_INSTRUCTIONS - Section contains only true machine instructions.
Definition: MachO.h:187
MCSectionGOFF.h
StringExtras.h
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:35
llvm::MCObjectFileInfo::DwarfLineStrSection
MCSection * DwarfLineStrSection
Definition: MCObjectFileInfo.h:84
llvm::ELF::SHT_LLVM_BB_ADDR_MAP
@ SHT_LLVM_BB_ADDR_MAP
Definition: ELF.h:992
llvm::MachO::S_4BYTE_LITERALS
@ S_4BYTE_LITERALS
S_4BYTE_LITERALS - Section with 4 byte literals.
Definition: MachO.h:131
llvm::ELF::SHF_LINK_ORDER
@ SHF_LINK_ORDER
Definition: ELF.h:1053
llvm::MCObjectFileInfo::DwarfLocSection
MCSection * DwarfLocSection
Definition: MCObjectFileInfo.h:89
llvm::MachO::S_THREAD_LOCAL_VARIABLES
@ S_THREAD_LOCAL_VARIABLES
S_THREAD_LOCAL_VARIABLES - Section with thread local variable structure data.
Definition: MachO.h:170
llvm::MachO::S_THREAD_LOCAL_REGULAR
@ S_THREAD_LOCAL_REGULAR
S_THREAD_LOCAL_REGULAR - Thread local data section.
Definition: MachO.h:165
llvm::MCContext::IsGOFF
@ IsGOFF
Definition: MCContext.h:85
llvm::Triple::bpfel
@ bpfel
Definition: Triple.h:56
llvm::SectionKind::getThreadData
static SectionKind getThreadData()
Definition: SectionKind.h:207
llvm::MCObjectFileInfo::initMCObjectFileInfo
void initMCObjectFileInfo(MCContext &MCCtx, bool PIC, bool LargeCodeModel=false)
Definition: MCObjectFileInfo.cpp:1030
llvm::MCObjectFileInfo::PseudoProbeDescSection
MCSection * PseudoProbeDescSection
Definition: MCObjectFileInfo.h:180
MCSection.h
llvm::MCObjectFileInfo::DwarfInfoSection
MCSection * DwarfInfoSection
Definition: MCObjectFileInfo.h:82
Triple.h
llvm::ELF::SHT_X86_64_UNWIND
@ SHT_X86_64_UNWIND
Definition: ELF.h:1014
llvm::MachO::S_ATTR_LIVE_SUPPORT
@ S_ATTR_LIVE_SUPPORT
S_ATTR_LIVE_SUPPORT - Blocks are live if they reference live blocks.
Definition: MachO.h:197
llvm::MCObjectFileInfo::DwarfMacroDWOSection
MCSection * DwarfMacroDWOSection
Definition: MCObjectFileInfo.h:117
llvm::Triple::arm
@ arm
Definition: Triple.h:49
MCAsmInfo.h
llvm::MCObjectFileInfo::DwarfLoclistsDWOSection
MCSection * DwarfLoclistsDWOSection
Definition: MCObjectFileInfo.h:129
llvm::Triple::aarch64_be
@ aarch64_be
Definition: Triple.h:52
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm_unreachable
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Definition: ErrorHandling.h:143
llvm::MCObjectFileInfo::getBBAddrMapSection
MCSection * getBBAddrMapSection(const MCSection &TextSec) const
Definition: MCObjectFileInfo.cpp:1123
llvm::Triple::thumb
@ thumb
Definition: Triple.h:83
llvm::MachO::S_ATTR_NO_TOC
@ S_ATTR_NO_TOC
S_ATTR_NO_TOC - Section contains coalesced symbols that are not to be in a ranlib table of contents.
Definition: MachO.h:190
llvm::MCSection
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition: MCSection.h:39
MCSectionDXContainer.h
S
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Definition: README.txt:210
llvm::MCContext::getCOFFSection
MCSectionCOFF * getCOFFSection(StringRef Section, unsigned Characteristics, SectionKind Kind, StringRef COMDATSymName, int Selection, unsigned UniqueID=GenericSectionID, const char *BeginSymName=nullptr)
Definition: MCContext.cpp:652
llvm::MachO::S_16BYTE_LITERALS
@ S_16BYTE_LITERALS
S_16BYTE_LITERALS - Section with only 16 byte literals.
Definition: MachO.h:158
llvm::MCContext::IsCOFF
@ IsCOFF
Definition: MCContext.h:86
llvm::MCObjectFileInfo::RemarksSection
MCSection * RemarksSection
Remarks section.
Definition: MCObjectFileInfo.h:168
llvm::MCObjectFileInfo::DwarfInfoDWOSection
MCSection * DwarfInfoDWOSection
Definition: MCObjectFileInfo.h:109
llvm::MCObjectFileInfo::GEHContSection
MCSection * GEHContSection
Definition: MCObjectFileInfo.h:223
llvm::MCObjectFileInfo::DrectveSection
MCSection * DrectveSection
COFF specific sections.
Definition: MCObjectFileInfo.h:219
llvm::MCObjectFileInfo::DwarfStrOffSection
MCSection * DwarfStrOffSection
The DWARF v5 string offset and address table sections.
Definition: MCObjectFileInfo.h:120
llvm::XCOFF::SSUBTYP_DWINFO
@ SSUBTYP_DWINFO
DWARF info section.
Definition: XCOFF.h:139
llvm::MCSection::setAlignment
void setAlignment(Align Value)
Definition: MCSection.h:141
llvm::MCObjectFileInfo::DataRelROSection
MCSection * DataRelROSection
Definition: MCObjectFileInfo.h:183
llvm::SectionKind::getData
static SectionKind getData()
Definition: SectionKind.h:213
llvm::MCObjectFileInfo::TOCBaseSection
MCSection * TOCBaseSection
Definition: MCObjectFileInfo.h:232
llvm::dwarf::DW_EH_PE_absptr
@ DW_EH_PE_absptr
Definition: Dwarf.h:437
llvm::SectionKind::getMergeableConst8
static SectionKind getMergeableConst8()
Definition: SectionKind.h:203
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:50
llvm::MCObjectFileInfo::DwarfRnglistsSection
MCSection * DwarfRnglistsSection
The DWARF v5 range list section.
Definition: MCObjectFileInfo.h:123
llvm::MCContext::getSwift5ReflectionSegmentName
const StringRef & getSwift5ReflectionSegmentName() const
Definition: MCContext.h:431
llvm::MCObjectFileInfo::DataSection
MCSection * DataSection
Section directive for standard data.
Definition: MCObjectFileInfo.h:59
llvm::MCObjectFileInfo::DwarfAccelNamespaceSection
MCSection * DwarfAccelNamespaceSection
Definition: MCObjectFileInfo.h:105
llvm::MachO::S_THREAD_LOCAL_VARIABLE_POINTERS
@ S_THREAD_LOCAL_VARIABLE_POINTERS
S_THREAD_LOCAL_VARIABLE_POINTERS - Section with pointers to thread local structures.
Definition: MachO.h:173
llvm::MCObjectFileInfo::MergeableConst32Section
MCSection * MergeableConst32Section
Definition: MCObjectFileInfo.h:187
llvm::ELF::SHF_MERGE
@ SHF_MERGE
Definition: ELF.h:1044
llvm::MCObjectFileInfo::GIATsSection
MCSection * GIATsSection
Definition: MCObjectFileInfo.h:225
llvm::COFF::IMAGE_SCN_CNT_CODE
@ IMAGE_SCN_CNT_CODE
Definition: COFF.h:287
llvm::MCObjectFileInfo::DwarfDebugInlineSection
const MCSection * DwarfDebugInlineSection
Definition: MCObjectFileInfo.h:87
Casting.h
llvm::Triple::MachO
@ MachO
Definition: Triple.h:276
llvm::MCObjectFileInfo::EHFrameSection
MCSection * EHFrameSection
EH frame section.
Definition: MCObjectFileInfo.h:173
llvm::Triple::mipsel
@ mipsel
Definition: Triple.h:65
llvm::XCOFF::XMC_TC0
@ XMC_TC0
TOC Anchor for TOC Addressability.
Definition: XCOFF.h:102
llvm::MCObjectFileInfo::COFFDebugTypesSection
MCSection * COFFDebugTypesSection
Definition: MCObjectFileInfo.h:144
Wasm.h
llvm::MachO::S_THREAD_LOCAL_ZEROFILL
@ S_THREAD_LOCAL_ZEROFILL
S_THREAD_LOCAL_ZEROFILL - Thread local zerofill section.
Definition: MachO.h:167
llvm::MCObjectFileInfo::DataCoalSection
MCSection * DataCoalSection
Definition: MCObjectFileInfo.h:206
llvm::CodeModel::Large
@ Large
Definition: CodeGen.h:28
llvm::MCObjectFileInfo::DwarfAccelObjCSection
MCSection * DwarfAccelObjCSection
Definition: MCObjectFileInfo.h:104
llvm::Triple::COFF
@ COFF
Definition: Triple.h:272
llvm::MCObjectFileInfo::DwarfGnuPubTypesSection
MCSection * DwarfGnuPubTypesSection
Section for newer gnu pubtypes.
Definition: MCObjectFileInfo.h:138
llvm::ELF::SHT_PROGBITS
@ SHT_PROGBITS
Definition: ELF.h:955
llvm::XCOFF::XMC_RW
@ XMC_RW
Read Write Data.
Definition: XCOFF.h:101
llvm::MCObjectFileInfo::DwarfTypesDWOSection
MCSection * DwarfTypesDWOSection
Definition: MCObjectFileInfo.h:110
llvm::SectionKind::getMergeableConst4
static SectionKind getMergeableConst4()
Definition: SectionKind.h:202
llvm::MCObjectFileInfo::DwarfAccelNamesSection
MCSection * DwarfAccelNamesSection
Definition: MCObjectFileInfo.h:103
llvm::MCObjectFileInfo::ReadOnly16Section
MCSection * ReadOnly16Section
Definition: MCObjectFileInfo.h:234
llvm::MCObjectFileInfo::BSSSection
MCSection * BSSSection
Section that is default initialized to zero.
Definition: MCObjectFileInfo.h:62
llvm::MCObjectFileInfo::MergeableConst4Section
MCSection * MergeableConst4Section
Definition: MCObjectFileInfo.h:184
llvm::MCObjectFileInfo::TLSBSSSection
MCSection * TLSBSSSection
Section directive for Thread Local uninitialized data.
Definition: MCObjectFileInfo.h:159
llvm::MCObjectFileInfo::StackSizesSection
MCSection * StackSizesSection
Section containing metadata on function stack sizes.
Definition: MCObjectFileInfo.h:176
llvm::MCObjectFileInfo::DwarfGnuPubNamesSection
MCSection * DwarfGnuPubNamesSection
Section for newer gnu pubnames.
Definition: MCObjectFileInfo.h:136
llvm::MCObjectFileInfo::DwarfMacinfoDWOSection
MCSection * DwarfMacinfoDWOSection
Definition: MCObjectFileInfo.h:116
llvm::XCOFF::SSUBTYP_DWFRAME
@ SSUBTYP_DWFRAME
DWARF frame section.
Definition: XCOFF.h:148
MCSectionSPIRV.h
llvm::COFF::IMAGE_SCN_MEM_EXECUTE
@ IMAGE_SCN_MEM_EXECUTE
Definition: COFF.h:319
llvm::MachO::S_THREAD_LOCAL_INIT_FUNCTION_POINTERS
@ S_THREAD_LOCAL_INIT_FUNCTION_POINTERS
S_THREAD_LOCAL_INIT_FUNCTION_POINTERS - Section with thread local variable initialization pointers to...
Definition: MachO.h:176
llvm::MCObjectFileInfo::StackMapSection
MCSection * StackMapSection
StackMap section.
Definition: MCObjectFileInfo.h:162
llvm::MCObjectFileInfo::PseudoProbeSection
MCSection * PseudoProbeSection
Section for pseudo probe information used by AutoFDO.
Definition: MCObjectFileInfo.h:179
llvm::COFF::IMAGE_SCN_MEM_16BIT
@ IMAGE_SCN_MEM_16BIT
Definition: COFF.h:296
llvm::EmitDwarfUnwindType::Always
@ Always
llvm::MCObjectFileInfo::DataCommonSection
MCSection * DataCommonSection
Definition: MCObjectFileInfo.h:208
llvm::MCObjectFileInfo::DwarfCUIndexSection
MCSection * DwarfCUIndexSection
Definition: MCObjectFileInfo.h:132
useCompactUnwind
static bool useCompactUnwind(const Triple &T)
Definition: MCObjectFileInfo.cpp:30
llvm::MCObjectFileInfo::TLSTLVSection
MCSection * TLSTLVSection
Section for thread local structure information.
Definition: MCObjectFileInfo.h:195
llvm::XCOFF::SSUBTYP_DWSTR
@ SSUBTYP_DWSTR
DWARF str section.
Definition: XCOFF.h:145
llvm::COFF::SectionCharacteristics
SectionCharacteristics
Definition: COFF.h:282
llvm::MCObjectFileInfo::COFFDebugSymbolsSection
MCSection * COFFDebugSymbolsSection
Definition: MCObjectFileInfo.h:143
llvm::wasm::WASM_SEG_FLAG_STRINGS
@ WASM_SEG_FLAG_STRINGS
Definition: Wasm.h:392
llvm::ELF::SHF_EXECINSTR
@ SHF_EXECINSTR
Definition: ELF.h:1041
llvm::Triple::mips
@ mips
Definition: Triple.h:64
llvm::MachO::S_ATTR_DEBUG
@ S_ATTR_DEBUG
S_ATTR_DEBUG - A debug section.
Definition: MachO.h:202
llvm::Triple::aarch64
@ aarch64
Definition: Triple.h:51
llvm::COFF::IMAGE_SCN_MEM_WRITE
@ IMAGE_SCN_MEM_WRITE
Definition: COFF.h:321
llvm::ELF::SHF_EXCLUDE
@ SHF_EXCLUDE
Definition: ELF.h:1072
MCSectionWasm.h
llvm::MCObjectFileInfo::TextSection
MCSection * TextSection
Section directive for standard text.
Definition: MCObjectFileInfo.h:56
llvm::Triple::UnknownObjectFormat
@ UnknownObjectFormat
Definition: Triple.h:270