Skip to content

Commit 1eaf926

Browse files
committed
[clang][CGObjCGNU] Remove no-op ptr-to-ptr bitcasts (NFC)
Opaque ptr cleanup effort (NFC)
1 parent bfb7843 commit 1eaf926

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

clang/lib/CodeGen/CGObjCGNU.cpp

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1918,9 +1918,8 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
19181918
classDecl->protocol_end());
19191919
SmallVector<llvm::Constant *, 16> Protocols;
19201920
for (const auto *I : RuntimeProtocols)
1921-
Protocols.push_back(
1922-
llvm::ConstantExpr::getBitCast(GenerateProtocolRef(I),
1923-
ProtocolPtrTy));
1921+
Protocols.push_back(GenerateProtocolRef(I));
1922+
19241923
if (Protocols.empty())
19251924
classFields.addNullPointer(PtrTy);
19261925
else
@@ -1938,7 +1937,7 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
19381937

19391938
auto *classRefSymbol = GetClassVar(className);
19401939
classRefSymbol->setSection(sectionName<ClassReferenceSection>());
1941-
classRefSymbol->setInitializer(llvm::ConstantExpr::getBitCast(classStruct, IdTy));
1940+
classRefSymbol->setInitializer(classStruct);
19421941

19431942
if (IsCOFF) {
19441943
// we can't import a class struct.
@@ -1971,8 +1970,7 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
19711970
classStruct->setName(SymbolForClass(className));
19721971
}
19731972
if (MetaClassPtrAlias) {
1974-
MetaClassPtrAlias->replaceAllUsesWith(
1975-
llvm::ConstantExpr::getBitCast(metaclass, IdTy));
1973+
MetaClassPtrAlias->replaceAllUsesWith(metaclass);
19761974
MetaClassPtrAlias->eraseFromParent();
19771975
MetaClassPtrAlias = nullptr;
19781976
}
@@ -2443,9 +2441,8 @@ llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
24432441
nullptr, vtableName);
24442442
}
24452443
llvm::Constant *Two = llvm::ConstantInt::get(IntTy, 2);
2446-
auto *BVtable = llvm::ConstantExpr::getBitCast(
2447-
llvm::ConstantExpr::getGetElementPtr(Vtable->getValueType(), Vtable, Two),
2448-
PtrToInt8Ty);
2444+
auto *BVtable =
2445+
llvm::ConstantExpr::getGetElementPtr(Vtable->getValueType(), Vtable, Two);
24492446

24502447
llvm::Constant *typeName =
24512448
ExportUniqueString(className, "__objc_eh_typename_");
@@ -2459,7 +2456,7 @@ llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
24592456
CGM.getPointerAlign(),
24602457
/*constant*/ false,
24612458
llvm::GlobalValue::LinkOnceODRLinkage);
2462-
return llvm::ConstantExpr::getBitCast(TI, PtrToInt8Ty);
2459+
return TI;
24632460
}
24642461

24652462
/// Generate an NSConstantString object.
@@ -3130,7 +3127,6 @@ llvm::Constant *
31303127
CGObjCGNU::GenerateEmptyProtocol(StringRef ProtocolName) {
31313128
llvm::Constant *ProtocolList = GenerateProtocolList({});
31323129
llvm::Constant *MethodList = GenerateProtocolMethodList({});
3133-
MethodList = llvm::ConstantExpr::getBitCast(MethodList, PtrToInt8Ty);
31343130
// Protocols are objects containing lists of the methods implemented and
31353131
// protocols adopted.
31363132
ConstantInitBuilder Builder(CGM);
@@ -3358,11 +3354,9 @@ void CGObjCGNU::GenerateCategory(const ObjCCategoryImplDecl *OCD) {
33583354
}
33593355
}
33603356

3361-
Categories.push_back(llvm::ConstantExpr::getBitCast(
3362-
Elements.finishAndCreateGlobal(
3363-
std::string(".objc_category_")+ClassName+CategoryName,
3364-
CGM.getPointerAlign()),
3365-
PtrTy));
3357+
Categories.push_back(Elements.finishAndCreateGlobal(
3358+
std::string(".objc_category_") + ClassName + CategoryName,
3359+
CGM.getPointerAlign()));
33663360
}
33673361

33683362
llvm::Constant *CGObjCGNU::GeneratePropertyList(const Decl *Container,
@@ -3665,20 +3659,17 @@ void CGObjCGNU::GenerateClass(const ObjCImplementationDecl *OID) {
36653659

36663660
// Resolve the class aliases, if they exist.
36673661
if (ClassPtrAlias) {
3668-
ClassPtrAlias->replaceAllUsesWith(
3669-
llvm::ConstantExpr::getBitCast(ClassStruct, IdTy));
3662+
ClassPtrAlias->replaceAllUsesWith(ClassStruct);
36703663
ClassPtrAlias->eraseFromParent();
36713664
ClassPtrAlias = nullptr;
36723665
}
36733666
if (MetaClassPtrAlias) {
3674-
MetaClassPtrAlias->replaceAllUsesWith(
3675-
llvm::ConstantExpr::getBitCast(MetaClassStruct, IdTy));
3667+
MetaClassPtrAlias->replaceAllUsesWith(MetaClassStruct);
36763668
MetaClassPtrAlias->eraseFromParent();
36773669
MetaClassPtrAlias = nullptr;
36783670
}
36793671

36803672
// Add class structure to list to be added to the symtab later
3681-
ClassStruct = llvm::ConstantExpr::getBitCast(ClassStruct, PtrToInt8Ty);
36823673
Classes.push_back(ClassStruct);
36833674
}
36843675

0 commit comments

Comments
 (0)