Skip to content

Commit 695662b

Browse files
committed
[clang] Remove ConstantAggregateBuilderBase::addBitCast (NFC)
* Replace all existing uses of ConstantAggregateBuilderBase::addBitCast, as they involve a no-op ptr-to-ptr bitcast * Remove method ConstantAggregateBuilderBase::addBitCast Opaque ptr cleanup effort (NFC)
1 parent 4259198 commit 695662b

File tree

2 files changed

+24
-35
lines changed

2 files changed

+24
-35
lines changed

clang/include/clang/CodeGen/ConstantInitBuilder.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,6 @@ class ConstantAggregateBuilderBase {
204204
add(llvm::ConstantPointerNull::get(ptrTy));
205205
}
206206

207-
/// Add a bitcast of a value to a specific type.
208-
void addBitCast(llvm::Constant *value, llvm::Type *type) {
209-
add(llvm::ConstantExpr::getBitCast(value, type));
210-
}
211-
212207
/// Add a bunch of new values to this initializer.
213208
void addAll(llvm::ArrayRef<llvm::Constant *> values) {
214209
assert(!Finished && "cannot add more values after finishing builder");

clang/lib/CodeGen/CGObjCGNU.cpp

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1725,9 +1725,8 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
17251725
SmallVector<ObjCMethodDecl*, 16> ClassMethods;
17261726
ClassMethods.insert(ClassMethods.begin(), OID->classmeth_begin(),
17271727
OID->classmeth_end());
1728-
metaclassFields.addBitCast(
1729-
GenerateMethodList(className, "", ClassMethods, true),
1730-
PtrTy);
1728+
metaclassFields.add(
1729+
GenerateMethodList(className, "", ClassMethods, true));
17311730
}
17321731
// void *dtable;
17331732
metaclassFields.addNullPointer(PtrTy);
@@ -1894,9 +1893,9 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
18941893
if (InstanceMethods.size() == 0)
18951894
classFields.addNullPointer(PtrTy);
18961895
else
1897-
classFields.addBitCast(
1898-
GenerateMethodList(className, "", InstanceMethods, false),
1899-
PtrTy);
1896+
classFields.add(
1897+
GenerateMethodList(className, "", InstanceMethods, false));
1898+
19001899
// void *dtable;
19011900
classFields.addNullPointer(PtrTy);
19021901
// IMP cxx_construct;
@@ -2887,14 +2886,14 @@ GenerateMethodList(StringRef ClassName,
28872886
assert(FnPtr && "Can't generate metadata for method that doesn't exist");
28882887
auto Method = MethodArray.beginStruct(ObjCMethodTy);
28892888
if (isV2ABI) {
2890-
Method.addBitCast(FnPtr, IMPTy);
2889+
Method.add(FnPtr);
28912890
Method.add(GetConstantSelector(OMD->getSelector(),
28922891
Context.getObjCEncodingForMethodDecl(OMD)));
28932892
Method.add(MakeConstantString(Context.getObjCEncodingForMethodDecl(OMD, true)));
28942893
} else {
28952894
Method.add(MakeConstantString(OMD->getSelector().getAsString()));
28962895
Method.add(MakeConstantString(Context.getObjCEncodingForMethodDecl(OMD)));
2897-
Method.addBitCast(FnPtr, IMPTy);
2896+
Method.add(FnPtr);
28982897
}
28992898
Method.finishAndAddTo(MethodArray);
29002899
}
@@ -2993,7 +2992,7 @@ llvm::Constant *CGObjCGNU::GenerateClassStructure(
29932992
// Fill in the structure
29942993

29952994
// isa
2996-
Elements.addBitCast(MetaClass, PtrToInt8Ty);
2995+
Elements.add(MetaClass);
29972996
// super_class
29982997
Elements.add(SuperClass);
29992998
// name
@@ -3022,7 +3021,7 @@ llvm::Constant *CGObjCGNU::GenerateClassStructure(
30223021
// sibling_class
30233022
Elements.add(NULLPtr);
30243023
// protocols
3025-
Elements.addBitCast(Protocols, PtrTy);
3024+
Elements.add(Protocols);
30263025
// gc_object_type
30273026
Elements.add(NULLPtr);
30283027
// abi_version
@@ -3094,7 +3093,7 @@ CGObjCGNU::GenerateProtocolList(ArrayRef<std::string> Protocols) {
30943093
} else {
30953094
protocol = value->getValue();
30963095
}
3097-
Elements.addBitCast(protocol, PtrToInt8Ty);
3096+
Elements.add(protocol);
30983097
}
30993098
Elements.finishAndAddTo(ProtocolList);
31003099
return ProtocolList.finishAndCreateGlobal(".objc_protocol_list",
@@ -3224,11 +3223,9 @@ void CGObjCGNU::GenerateProtocolHolderCategory() {
32243223
Elements.add(MakeConstantString(CategoryName));
32253224
Elements.add(MakeConstantString(ClassName));
32263225
// Instance method list
3227-
Elements.addBitCast(GenerateMethodList(
3228-
ClassName, CategoryName, {}, false), PtrTy);
3226+
Elements.add(GenerateMethodList(ClassName, CategoryName, {}, false));
32293227
// Class method list
3230-
Elements.addBitCast(GenerateMethodList(
3231-
ClassName, CategoryName, {}, true), PtrTy);
3228+
Elements.add(GenerateMethodList(ClassName, CategoryName, {}, true));
32323229

32333230
// Protocol list
32343231
ConstantInitBuilder ProtocolListBuilder(CGM);
@@ -3238,13 +3235,11 @@ void CGObjCGNU::GenerateProtocolHolderCategory() {
32383235
auto ProtocolElements = ProtocolList.beginArray(PtrTy);
32393236
for (auto iter = ExistingProtocols.begin(), endIter = ExistingProtocols.end();
32403237
iter != endIter ; iter++) {
3241-
ProtocolElements.addBitCast(iter->getValue(), PtrTy);
3238+
ProtocolElements.add(iter->getValue());
32423239
}
32433240
ProtocolElements.finishAndAddTo(ProtocolList);
3244-
Elements.addBitCast(
3245-
ProtocolList.finishAndCreateGlobal(".objc_protocol_list",
3246-
CGM.getPointerAlign()),
3247-
PtrTy);
3241+
Elements.add(ProtocolList.finishAndCreateGlobal(".objc_protocol_list",
3242+
CGM.getPointerAlign()));
32483243
Categories.push_back(
32493244
Elements.finishAndCreateGlobal("", CGM.getPointerAlign()));
32503245
}
@@ -3321,27 +3316,26 @@ void CGObjCGNU::GenerateCategory(const ObjCCategoryImplDecl *OCD) {
33213316
SmallVector<ObjCMethodDecl*, 16> InstanceMethods;
33223317
InstanceMethods.insert(InstanceMethods.begin(), OCD->instmeth_begin(),
33233318
OCD->instmeth_end());
3324-
Elements.addBitCast(
3325-
GenerateMethodList(ClassName, CategoryName, InstanceMethods, false),
3326-
PtrTy);
3319+
Elements.add(
3320+
GenerateMethodList(ClassName, CategoryName, InstanceMethods, false));
3321+
33273322
// Class method list
33283323

33293324
SmallVector<ObjCMethodDecl*, 16> ClassMethods;
33303325
ClassMethods.insert(ClassMethods.begin(), OCD->classmeth_begin(),
33313326
OCD->classmeth_end());
3332-
Elements.addBitCast(
3333-
GenerateMethodList(ClassName, CategoryName, ClassMethods, true),
3334-
PtrTy);
3327+
Elements.add(GenerateMethodList(ClassName, CategoryName, ClassMethods, true));
3328+
33353329
// Protocol list
3336-
Elements.addBitCast(GenerateCategoryProtocolList(CatDecl), PtrTy);
3330+
Elements.add(GenerateCategoryProtocolList(CatDecl));
33373331
if (isRuntime(ObjCRuntime::GNUstep, 2)) {
33383332
const ObjCCategoryDecl *Category =
33393333
Class->FindCategoryDeclaration(OCD->getIdentifier());
33403334
if (Category) {
33413335
// Instance properties
3342-
Elements.addBitCast(GeneratePropertyList(OCD, Category, false), PtrTy);
3336+
Elements.add(GeneratePropertyList(OCD, Category, false));
33433337
// Class properties
3344-
Elements.addBitCast(GeneratePropertyList(OCD, Category, true), PtrTy);
3338+
Elements.add(GeneratePropertyList(OCD, Category, true));
33453339
} else {
33463340
Elements.addNullPointer(PtrTy);
33473341
Elements.addNullPointer(PtrTy);
@@ -3785,7 +3779,7 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() {
37853779
// Number of static selectors
37863780
symtab.addInt(LongTy, selectorCount);
37873781

3788-
symtab.addBitCast(selectorList, selStructPtrTy);
3782+
symtab.add(selectorList);
37893783

37903784
// Number of classes defined.
37913785
symtab.addInt(CGM.Int16Ty, Classes.size());

0 commit comments

Comments
 (0)