forked from OSchip/llvm-project
[Objective-c] Stop attaching section "datacoal_nt" to global variables.
The current macho linker just copies symbols in section datacoal_nt to section data, so it doesn't really matter whether or not section "datacoal_nt" is attached to the global variable. This is a follow-up to r250370, which made changes in llvm to stop putting functions and data in the *coal* sections. rdar://problem/24528611 llvm-svn: 260496
This commit is contained in:
parent
fcb345f172
commit
7f550f3dbb
|
@ -6409,7 +6409,7 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
|
|||
const ObjCProtocolDecl *PD) {
|
||||
llvm::GlobalVariable *&Entry = Protocols[PD->getIdentifier()];
|
||||
|
||||
if (!Entry) {
|
||||
if (!Entry)
|
||||
// We use the initializer as a marker of whether this is a forward
|
||||
// reference or not. At module finalization we add the empty
|
||||
// contents for protocols which were referenced but never defined.
|
||||
|
@ -6418,8 +6418,6 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
|
|||
false, llvm::GlobalValue::ExternalLinkage,
|
||||
nullptr,
|
||||
"\01l_OBJC_PROTOCOL_$_" + PD->getObjCRuntimeNameAsString());
|
||||
Entry->setSection("__DATA,__datacoal_nt,coalesced");
|
||||
}
|
||||
|
||||
return Entry;
|
||||
}
|
||||
|
@ -6546,7 +6544,6 @@ llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
|
|||
"\01l_OBJC_PROTOCOL_$_" + PD->getObjCRuntimeNameAsString());
|
||||
Entry->setAlignment(
|
||||
CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABITy));
|
||||
Entry->setSection("__DATA,__datacoal_nt,coalesced");
|
||||
|
||||
Protocols[PD->getIdentifier()] = Entry;
|
||||
}
|
||||
|
@ -7271,8 +7268,6 @@ CGObjCNonFragileABIMac::GetInterfaceEHType(const ObjCInterfaceDecl *ID,
|
|||
|
||||
if (ForDefinition)
|
||||
Entry->setSection("__DATA,__objc_const");
|
||||
else
|
||||
Entry->setSection("__DATA,__datacoal_nt,coalesced");
|
||||
|
||||
return Entry;
|
||||
}
|
||||
|
|
|
@ -6981,7 +6981,7 @@ void RewriteModernObjC::RewriteObjCProtocolMetaData(ObjCProtocolDecl *PDecl,
|
|||
Result += "static ";
|
||||
Result += "struct _protocol_t _OBJC_PROTOCOL_";
|
||||
Result += PDecl->getNameAsString();
|
||||
Result += " __attribute__ ((used, section (\"__DATA,__datacoal_nt,coalesced\"))) = {\n";
|
||||
Result += " __attribute__ ((used)) = {\n";
|
||||
Result += "\t0,\n"; // id is; is null
|
||||
Result += "\t\""; Result += PDecl->getNameAsString(); Result += "\",\n";
|
||||
if (SuperProtocols.size() > 0) {
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// CHECK-X86_64: @"OBJC_CLASS_$_MySecretNamespace.A" = global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64: @"OBJC_METACLASS_$_MySecretNamespace.A" = global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64: @OBJC_CLASS_NAME_ = {{.*}}, section "__TEXT,__objc_classname,cstring_literals", align 1
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 8
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global {{.*}}, align 8
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external global
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = global {{.*}}, section "__DATA,__objc_const", align 8
|
||||
// CHECK-X86_64: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_CLASS_$_MySecretNamespace.A" = hidden global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_METACLASS_$_MySecretNamespace.A" = hidden global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak hidden global {{.*}}, section "__DATA,__datacoal_nt,coalesced"
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak hidden global {{.*}}
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external global
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = hidden global {{.*}}, section "__DATA,__objc_const", align 8
|
||||
// CHECK-X86_64-HIDDEN: define internal void @"\01-[A im0]"
|
||||
|
@ -36,7 +36,7 @@
|
|||
// CHECK-ARMV6: @"OBJC_CLASS_$_MySecretNamespace.A" = global {{.*}}, section "__DATA, __objc_data", align 4
|
||||
// CHECK-ARMV6: @"OBJC_METACLASS_$_MySecretNamespace.A" = global {{.*}}, section "__DATA, __objc_data", align 4
|
||||
// CHECK-ARMV6: @OBJC_CLASS_NAME_ = {{.*}}, section "__TEXT,__objc_classname,cstring_literals", align 1
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 4
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH1" = weak global {{.*}}, align 4
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH2" = external global
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_MySecretNamespace.EH3" = global {{.*}}, section "__DATA,__objc_const", align 4
|
||||
// CHECK-ARMV6: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section "__DATA, __objc_classlist, regular, no_dead_strip", align 4
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// CHECK: @"\01l_OBJC_$_CLASS_METHODS_A" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
// CHECK: @"\01l_OBJC_$_PROTOCOL_INSTANCE_METHODS_P" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
// CHECK: @"\01l_OBJC_$_PROTOCOL_CLASS_METHODS_P" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_P" = weak hidden global {{.*}} section "__DATA,__datacoal_nt,coalesced", align 8
|
||||
// CHECK: @"\01l_OBJC_PROTOCOL_$_P" = weak hidden global {{.*}}, align 8
|
||||
// CHECK: @"\01l_OBJC_LABEL_PROTOCOL_$_P" = weak hidden global {{.*}} section "__DATA, __objc_protolist, coalesced, no_dead_strip", align 8
|
||||
// CHECK: @"\01l_OBJC_CLASS_PROTOCOLS_$_A" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
// CHECK: @"\01l_OBJC_METACLASS_RO_$_A" = private global {{.*}} section "__DATA, __objc_const", align 8
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// CHECK-X86_64: @"OBJC_CLASS_$_A" = global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64: @"OBJC_METACLASS_$_A" = global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64: @OBJC_CLASS_NAME_ = {{.*}}, section "__TEXT,__objc_classname,cstring_literals", align 1
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 8
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, align 8
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_EH2" = external global
|
||||
// CHECK-X86_64: @"OBJC_EHTYPE_$_EH3" = global {{.*}}, section "__DATA,__objc_const", align 8
|
||||
// CHECK-X86_64: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_CLASS_$_A" = hidden global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_METACLASS_$_A" = hidden global {{.*}}, section "__DATA, __objc_data", align 8
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH1" = weak hidden global {{.*}}, section "__DATA,__datacoal_nt,coalesced"
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH1" = weak hidden global {{.*}}
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH2" = external global
|
||||
// CHECK-X86_64-HIDDEN: @"OBJC_EHTYPE_$_EH3" = hidden global {{.*}}, section "__DATA,__objc_const", align 8
|
||||
// CHECK-X86_64-HIDDEN: define internal void @"\01-[A im0]"
|
||||
|
@ -35,7 +35,7 @@
|
|||
// CHECK-ARMV6: @"OBJC_CLASS_$_A" = global {{.*}}, section "__DATA, __objc_data", align 4
|
||||
// CHECK-ARMV6: @"OBJC_METACLASS_$_A" = global {{.*}}, section "__DATA, __objc_data", align 4
|
||||
// CHECK-ARMV6: @OBJC_CLASS_NAME_ = {{.*}}, section "__TEXT,__objc_classname,cstring_literals", align 1
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, section "__DATA,__datacoal_nt,coalesced", align 4
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH1" = weak global {{.*}}, align 4
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH2" = external global
|
||||
// CHECK-ARMV6: @"OBJC_EHTYPE_$_EH3" = global {{.*}}, section "__DATA,__objc_const", align 4
|
||||
// CHECK-ARMV6: @"OBJC_LABEL_CLASS_$" = private global {{.*}}, section "__DATA, __objc_classlist, regular, no_dead_strip", align 4
|
||||
|
|
Loading…
Reference in New Issue