Skip to content

Commit 34ee69b

Browse files
committed
[clang][CGObjCMac] Remove no-op ptr-to-ptr bitcasts (NFC)
Opaque ptr cleanup effort (NFC).
1 parent a002271 commit 34ee69b

File tree

1 file changed

+23
-39
lines changed

1 file changed

+23
-39
lines changed

clang/lib/CodeGen/CGObjCMac.cpp

Lines changed: 23 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2961,8 +2961,7 @@ llvm::Value *CGObjCMac::GenerateProtocolRef(CodeGenFunction &CGF,
29612961
// resolved. Investigate. Its also wasteful to look this up over and over.
29622962
LazySymbols.insert(&CGM.getContext().Idents.get("Protocol"));
29632963

2964-
return llvm::ConstantExpr::getBitCast(GetProtocolRef(PD),
2965-
ObjCTypes.getExternalProtocolPtrTy());
2964+
return GetProtocolRef(PD);
29662965
}
29672966

29682967
void CGObjCCommonMac::GenerateProtocol(const ObjCProtocolDecl *PD) {
@@ -3182,7 +3181,7 @@ CGObjCMac::EmitProtocolList(Twine name,
31823181

31833182
llvm::GlobalVariable *GV =
31843183
CreateMetadataVar(name, values, section, CGM.getPointerAlign(), false);
3185-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListPtrTy);
3184+
return GV;
31863185
}
31873186

31883187
static void
@@ -3290,7 +3289,7 @@ llvm::Constant *CGObjCCommonMac::EmitPropertyList(Twine Name,
32903289

32913290
llvm::GlobalVariable *GV =
32923291
CreateMetadataVar(Name, values, Section, CGM.getPointerAlign(), true);
3293-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.PropertyListPtrTy);
3292+
return GV;
32943293
}
32953294

32963295
llvm::Constant *
@@ -3311,7 +3310,7 @@ CGObjCCommonMac::EmitProtocolMethodTypes(Twine Name,
33113310

33123311
llvm::GlobalVariable *GV =
33133312
CreateMetadataVar(Name, Init, Section, CGM.getPointerAlign(), true);
3314-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.Int8PtrPtrTy);
3313+
return GV;
33153314
}
33163315

33173316
/*
@@ -3804,7 +3803,7 @@ llvm::Constant *CGObjCMac::EmitIvarList(const ObjCImplementationDecl *ID,
38043803
GV = CreateMetadataVar("OBJC_INSTANCE_VARIABLES_" + ID->getName(), ivarList,
38053804
"__OBJC,__instance_vars,regular,no_dead_strip",
38063805
CGM.getPointerAlign(), true);
3807-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.IvarListPtrTy);
3806+
return GV;
38083807
}
38093808

38103809
/// Build a struct objc_method_description constant for the given method.
@@ -3923,8 +3922,7 @@ llvm::Constant *CGObjCMac::emitMethodList(Twine name, MethodListType MLT,
39233922

39243923
llvm::GlobalVariable *GV = CreateMetadataVar(prefix + name, values, section,
39253924
CGM.getPointerAlign(), true);
3926-
return llvm::ConstantExpr::getBitCast(GV,
3927-
ObjCTypes.MethodDescriptionListPtrTy);
3925+
return GV;
39283926
}
39293927

39303928
// Otherwise, it's an objc_method_list.
@@ -3941,7 +3939,7 @@ llvm::Constant *CGObjCMac::emitMethodList(Twine name, MethodListType MLT,
39413939

39423940
llvm::GlobalVariable *GV = CreateMetadataVar(prefix + name, values, section,
39433941
CGM.getPointerAlign(), true);
3944-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodListPtrTy);
3942+
return GV;
39453943
}
39463944

39473945
llvm::Function *CGObjCCommonMac::GenerateMethod(const ObjCMethodDecl *OMD,
@@ -3996,8 +3994,7 @@ CGObjCCommonMac::GenerateDirectMethod(const ObjCMethodDecl *OMD,
39963994
Fn = llvm::Function::Create(MethodTy, llvm::GlobalValue::ExternalLinkage,
39973995
"", &CGM.getModule());
39983996
Fn->takeName(OldFn);
3999-
OldFn->replaceAllUsesWith(
4000-
llvm::ConstantExpr::getBitCast(Fn, OldFn->getType()));
3997+
OldFn->replaceAllUsesWith(Fn);
40013998
OldFn->eraseFromParent();
40023999

40034000
// Replace the cached function in the map.
@@ -5204,7 +5201,7 @@ llvm::Constant *CGObjCMac::EmitModuleSymbols() {
52045201
llvm::GlobalVariable *GV = CreateMetadataVar(
52055202
"OBJC_SYMBOLS", values, "__OBJC,__symbols,regular,no_dead_strip",
52065203
CGM.getPointerAlign(), true);
5207-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.SymtabPtrTy);
5204+
return GV;
52085205
}
52095206

52105207
llvm::Value *CGObjCMac::EmitClassRefFromId(CodeGenFunction &CGF,
@@ -5214,13 +5211,10 @@ llvm::Value *CGObjCMac::EmitClassRefFromId(CodeGenFunction &CGF,
52145211
llvm::GlobalVariable *&Entry = ClassReferences[II];
52155212

52165213
if (!Entry) {
5217-
llvm::Constant *Casted =
5218-
llvm::ConstantExpr::getBitCast(GetClassName(II->getName()),
5219-
ObjCTypes.ClassPtrTy);
5220-
Entry = CreateMetadataVar(
5221-
"OBJC_CLASS_REFERENCES_", Casted,
5222-
"__OBJC,__cls_refs,literal_pointers,no_dead_strip",
5223-
CGM.getPointerAlign(), true);
5214+
Entry =
5215+
CreateMetadataVar("OBJC_CLASS_REFERENCES_", GetClassName(II->getName()),
5216+
"__OBJC,__cls_refs,literal_pointers,no_dead_strip",
5217+
CGM.getPointerAlign(), true);
52245218
}
52255219

52265220
return CGF.Builder.CreateAlignedLoad(Entry->getValueType(), Entry,
@@ -5253,11 +5247,8 @@ Address CGObjCMac::EmitSelectorAddr(Selector Sel) {
52535247

52545248
llvm::GlobalVariable *&Entry = SelectorReferences[Sel];
52555249
if (!Entry) {
5256-
llvm::Constant *Casted =
5257-
llvm::ConstantExpr::getBitCast(GetMethodVarName(Sel),
5258-
ObjCTypes.SelectorPtrTy);
52595250
Entry = CreateMetadataVar(
5260-
"OBJC_SELECTOR_REFERENCES_", Casted,
5251+
"OBJC_SELECTOR_REFERENCES_", GetMethodVarName(Sel),
52615252
"__OBJC,__message_refs,literal_pointers,no_dead_strip", Align, true);
52625253
Entry->setExternallyInitialized(true);
52635254
}
@@ -6166,8 +6157,8 @@ void CGObjCNonFragileABIMac::AddModuleClassList(
61666157

61676158
SmallVector<llvm::Constant*, 8> Symbols(NumClasses);
61686159
for (unsigned i=0; i<NumClasses; i++)
6169-
Symbols[i] = llvm::ConstantExpr::getBitCast(Container[i],
6170-
ObjCTypes.Int8PtrTy);
6160+
Symbols[i] = Container[i];
6161+
61716162
llvm::Constant *Init =
61726163
llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.Int8PtrTy,
61736164
Symbols.size()),
@@ -6603,9 +6594,7 @@ llvm::Value *CGObjCNonFragileABIMac::GenerateProtocolRef(CodeGenFunction &CGF,
66036594
// of protocol's meta-data (not a reference to it!)
66046595
assert(!PD->isNonRuntimeProtocol() &&
66056596
"attempting to get a protocol ref to a static protocol.");
6606-
llvm::Constant *Init =
6607-
llvm::ConstantExpr::getBitCast(GetOrEmitProtocol(PD),
6608-
ObjCTypes.getExternalProtocolPtrTy());
6597+
llvm::Constant *Init = GetOrEmitProtocol(PD);
66096598

66106599
std::string ProtocolName("_OBJC_PROTOCOL_REFERENCE_$_");
66116600
ProtocolName += PD->getObjCRuntimeNameAsString();
@@ -6830,7 +6819,7 @@ CGObjCNonFragileABIMac::emitMethodList(Twine name, MethodListType kind,
68306819

68316820
llvm::GlobalVariable *GV = finishAndCreateGlobal(values, prefix + name, CGM);
68326821
CGM.addCompilerUsedGlobal(GV);
6833-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodListnfABIPtrTy);
6822+
return GV;
68346823
}
68356824

68366825
/// ObjCIvarOffsetVariable - Returns the ivar offset variable for
@@ -6972,7 +6961,7 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitIvarList(
69726961
llvm::GlobalVariable *GV = finishAndCreateGlobal(
69736962
ivarList, Prefix + OID->getObjCRuntimeNameAsString(), CGM);
69746963
CGM.addCompilerUsedGlobal(GV);
6975-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.IvarListnfABIPtrTy);
6964+
return GV;
69766965
}
69776966

69786967
llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
@@ -7146,7 +7135,7 @@ CGObjCNonFragileABIMac::EmitProtocolList(Twine Name,
71467135
llvm::GlobalVariable *GV =
71477136
CGM.getModule().getGlobalVariable(TmpName.str(), true);
71487137
if (GV)
7149-
return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListnfABIPtrTy);
7138+
return GV;
71507139

71517140
ConstantInitBuilder builder(CGM);
71527141
auto values = builder.beginStruct();
@@ -7164,8 +7153,7 @@ CGObjCNonFragileABIMac::EmitProtocolList(Twine Name,
71647153

71657154
GV = finishAndCreateGlobal(values, Name, CGM);
71667155
CGM.addCompilerUsedGlobal(GV);
7167-
return llvm::ConstantExpr::getBitCast(GV,
7168-
ObjCTypes.ProtocolListnfABIPtrTy);
7156+
return GV;
71697157
}
71707158

71717159
/// EmitObjCValueForIvar - Code Gen for nonfragile ivar reference.
@@ -7399,8 +7387,7 @@ CGObjCNonFragileABIMac::GetClassGlobal(StringRef Name,
73997387
NewGV->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass);
74007388

74017389
if (GV) {
7402-
GV->replaceAllUsesWith(
7403-
llvm::ConstantExpr::getBitCast(NewGV, GV->getType()));
7390+
GV->replaceAllUsesWith(NewGV);
74047391
GV->eraseFromParent();
74057392
}
74067393
GV = NewGV;
@@ -7611,14 +7598,11 @@ Address CGObjCNonFragileABIMac::EmitSelectorAddr(Selector Sel) {
76117598
llvm::GlobalVariable *&Entry = SelectorReferences[Sel];
76127599
CharUnits Align = CGM.getPointerAlign();
76137600
if (!Entry) {
7614-
llvm::Constant *Casted =
7615-
llvm::ConstantExpr::getBitCast(GetMethodVarName(Sel),
7616-
ObjCTypes.SelectorPtrTy);
76177601
std::string SectionName =
76187602
GetSectionName("__objc_selrefs", "literal_pointers,no_dead_strip");
76197603
Entry = new llvm::GlobalVariable(
76207604
CGM.getModule(), ObjCTypes.SelectorPtrTy, false,
7621-
getLinkageTypeForObjCMetadata(CGM, SectionName), Casted,
7605+
getLinkageTypeForObjCMetadata(CGM, SectionName), GetMethodVarName(Sel),
76227606
"OBJC_SELECTOR_REFERENCES_");
76237607
Entry->setExternallyInitialized(true);
76247608
Entry->setSection(SectionName);

0 commit comments

Comments
 (0)