LLVM 20.0.0git
MachOObjectFormat.cpp
Go to the documentation of this file.
1//===-------- MachOObjectFormat.cpp -- MachO format details for ORC -------===//
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// ORC-specific MachO object format details.
10//
11//===----------------------------------------------------------------------===//
12
14
15namespace llvm {
16namespace orc {
17
20StringRef MachOEHFrameSectionName = "__TEXT,__eh_frame";
23StringRef MachOModInitFuncSectionName = "__DATA,__mod_init_func";
24StringRef MachOObjCCatListSectionName = "__DATA,__objc_catlist";
25StringRef MachOObjCCatList2SectionName = "__DATA,__objc_catlist2";
26StringRef MachOObjCClassListSectionName = "__DATA,__objc_classlist";
27StringRef MachOObjCClassNameSectionName = "__TEXT,__objc_classname";
28StringRef MachOObjCClassRefsSectionName = "__DATA,__objc_classrefs";
29StringRef MachOObjCConstSectionName = "__DATA,__objc_const";
30StringRef MachOObjCDataSectionName = "__DATA,__objc_data";
31StringRef MachOObjCImageInfoSectionName = "__DATA,__objc_imageinfo";
32StringRef MachOObjCMethNameSectionName = "__TEXT,__objc_methname";
33StringRef MachOObjCMethTypeSectionName = "__TEXT,__objc_methtype";
34StringRef MachOObjCNLCatListSectionName = "__DATA,__objc_nlcatlist";
35StringRef MachOObjCNLClassListSectionName = "__DATA,__objc_nlclslist";
36StringRef MachOObjCProtoListSectionName = "__DATA,__objc_protolist";
37StringRef MachOObjCProtoRefsSectionName = "__DATA,__objc_protorefs";
38StringRef MachOObjCSelRefsSectionName = "__DATA,__objc_selrefs";
39StringRef MachOSwift5ProtoSectionName = "__TEXT,__swift5_proto";
40StringRef MachOSwift5ProtosSectionName = "__TEXT,__swift5_protos";
41StringRef MachOSwift5TypesSectionName = "__TEXT,__swift5_types";
42StringRef MachOSwift5TypeRefSectionName = "__TEXT,__swift5_typeref";
44StringRef MachOSwift5EntrySectionName = "__TEXT,__swift5_entry";
46StringRef MachOThreadBSSSectionName = "__DATA,__thread_bss";
47StringRef MachOThreadDataSectionName = "__DATA,__thread_data";
48StringRef MachOThreadVarsSectionName = "__DATA,__thread_vars";
49
62};
63
65 for (auto &InitSection : MachOInitSectionNames) {
66 // Loop below assumes all MachO init sectios have a length-6
67 // segment name.
68 assert(InitSection[6] == ',' && "Init section seg name has length != 6");
69 if (InitSection.starts_with(SegName) && InitSection.substr(7) == SecName)
70 return true;
71 }
72 return false;
73}
74
75} // namespace orc
76} // namespace llvm
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:51
StringRef MachOSwift5EntrySectionName
StringRef MachOThreadBSSSectionName
StringRef MachOThreadVarsSectionName
StringRef MachOCompactUnwindInfoSectionName
StringRef MachOObjCProtoListSectionName
StringRef MachOSwift5ProtosSectionName
StringRef MachOEHFrameSectionName
StringRef MachOModInitFuncSectionName
StringRef MachOObjCConstSectionName
StringRef MachODataDataSectionName
StringRef MachOSwift5ProtoSectionName
bool isMachOInitializerSection(StringRef SegName, StringRef SecName)
StringRef MachOObjCCatListSectionName
StringRef MachOObjCClassRefsSectionName
StringRef MachOObjCDataSectionName
StringRef MachOObjCClassNameSectionName
StringRef MachOObjCMethNameSectionName
StringRef MachOInitSectionNames[22]
StringRef MachOObjCClassListSectionName
StringRef MachOObjCSelRefsSectionName
StringRef MachOTextTextSectionName
StringRef MachOSwift5FieldMetadataSectionName
StringRef MachOCStringSectionName
StringRef MachOObjCMethTypeSectionName
StringRef MachOSwift5TypesSectionName
StringRef MachOObjCNLCatListSectionName
StringRef MachOObjCNLClassListSectionName
StringRef MachOObjCImageInfoSectionName
StringRef MachOThreadDataSectionName
StringRef MachODataCommonSectionName
StringRef MachOObjCProtoRefsSectionName
StringRef MachOSwift5TypeRefSectionName
StringRef MachOObjCCatList2SectionName
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18