@@ -651,8 +651,7 @@ OwnedAddress irgen::projectPhysicalClassMemberAddress(IRGenFunction &IGF,
651
651
llvm::Value *base,
652
652
SILType baseType,
653
653
SILType fieldType,
654
- VarDecl *field,
655
- GenericSignature fnSig) {
654
+ VarDecl *field) {
656
655
// If the field is empty, its address doesn't matter.
657
656
auto &fieldTI = IGF.getTypeInfo(fieldType);
658
657
if (fieldTI.isKnownEmpty(ResilienceExpansion::Maximal)) {
@@ -686,7 +685,7 @@ OwnedAddress irgen::projectPhysicalClassMemberAddress(IRGenFunction &IGF,
686
685
}
687
686
688
687
case FieldAccess::ConstantIndirect: {
689
- auto metadata = emitHeapMetadataRefForHeapObject(IGF, base, baseType, fnSig );
688
+ auto metadata = emitHeapMetadataRefForHeapObject(IGF, base, baseType);
690
689
auto offset = emitClassFieldOffset(IGF, baseClass, field, metadata);
691
690
return emitAddressAtOffset(IGF, baseType, base, offset, field);
692
691
}
@@ -728,8 +727,7 @@ irgen::getPhysicalClassMemberAccessStrategy(IRGenModule &IGM,
728
727
729
728
Address irgen::emitTailProjection(IRGenFunction &IGF, llvm::Value *Base,
730
729
SILType ClassType,
731
- SILType TailType,
732
- GenericSignature fnSig) {
730
+ SILType TailType) {
733
731
const ClassTypeInfo &classTI = IGF.getTypeInfo(ClassType).as<ClassTypeInfo>();
734
732
735
733
llvm::Value *Offset = nullptr;
@@ -745,8 +743,7 @@ Address irgen::emitTailProjection(IRGenFunction &IGF, llvm::Value *Base,
745
743
Align = HeapObjAlign.alignmentAtOffset(ClassSize);
746
744
} else {
747
745
llvm::Value *metadata = emitHeapMetadataRefForHeapObject(IGF, Base,
748
- ClassType,
749
- fnSig);
746
+ ClassType);
750
747
Offset = emitClassResilientInstanceSizeAndAlignMask(IGF,
751
748
ClassType.getClassOrBoundGenericClass(),
752
749
metadata).first;
@@ -971,7 +968,6 @@ static void getInstanceSizeAndAlignMask(IRGenFunction &IGF,
971
968
SILType selfType,
972
969
ClassDecl *selfClass,
973
970
llvm::Value *selfValue,
974
- GenericSignature fnSig,
975
971
llvm::Value *&size,
976
972
llvm::Value *&alignMask) {
977
973
// Try to determine the size of the object we're deallocating.
@@ -988,7 +984,7 @@ static void getInstanceSizeAndAlignMask(IRGenFunction &IGF,
988
984
989
985
// Otherwise, get them from the metadata.
990
986
llvm::Value *metadata =
991
- emitHeapMetadataRefForHeapObject(IGF, selfValue, selfType, fnSig );
987
+ emitHeapMetadataRefForHeapObject(IGF, selfValue, selfType);
992
988
std::tie(size, alignMask)
993
989
= emitClassResilientInstanceSizeAndAlignMask(IGF, selfClass, metadata);
994
990
}
@@ -1000,8 +996,7 @@ static llvm::Value *emitCastToHeapObject(IRGenFunction &IGF,
1000
996
1001
997
void irgen::emitClassDeallocation(IRGenFunction &IGF,
1002
998
SILType selfType,
1003
- llvm::Value *selfValue,
1004
- GenericSignature fnSig) {
999
+ llvm::Value *selfValue) {
1005
1000
auto *theClass = selfType.getClassOrBoundGenericClass();
1006
1001
1007
1002
// We want to deallocate default actors or potential default
@@ -1033,7 +1028,7 @@ void irgen::emitClassDeallocation(IRGenFunction &IGF,
1033
1028
}
1034
1029
1035
1030
llvm::Value *size, *alignMask;
1036
- getInstanceSizeAndAlignMask(IGF, selfType, theClass, selfValue, fnSig,
1031
+ getInstanceSizeAndAlignMask(IGF, selfType, theClass, selfValue,
1037
1032
size, alignMask);
1038
1033
1039
1034
selfValue = emitCastToHeapObject(IGF, selfValue);
@@ -1043,13 +1038,12 @@ void irgen::emitClassDeallocation(IRGenFunction &IGF,
1043
1038
void irgen::emitPartialClassDeallocation(IRGenFunction &IGF,
1044
1039
SILType selfType,
1045
1040
llvm::Value *selfValue,
1046
- llvm::Value *metadataValue,
1047
- GenericSignature fnSig) {
1041
+ llvm::Value *metadataValue) {
1048
1042
auto *theClass = selfType.getClassOrBoundGenericClass();
1049
1043
assert(theClass->getForeignClassKind() == ClassDecl::ForeignKind::Normal);
1050
1044
1051
1045
llvm::Value *size, *alignMask;
1052
- getInstanceSizeAndAlignMask(IGF, selfType, theClass, selfValue, fnSig,
1046
+ getInstanceSizeAndAlignMask(IGF, selfType, theClass, selfValue,
1053
1047
size, alignMask);
1054
1048
1055
1049
selfValue = IGF.Builder.CreateBitCast(selfValue, IGF.IGM.RefCountedPtrTy);
@@ -3143,7 +3137,6 @@ irgen::emitVirtualMethodValue(IRGenFunction &IGF,
3143
3137
SILType baseType,
3144
3138
SILDeclRef method,
3145
3139
CanSILFunctionType methodType,
3146
- GenericSignature fnSig,
3147
3140
bool useSuperVTable) {
3148
3141
// Find the metadata.
3149
3142
llvm::Value *metadata;
@@ -3162,7 +3155,7 @@ irgen::emitVirtualMethodValue(IRGenFunction &IGF,
3162
3155
metadata = base;
3163
3156
} else {
3164
3157
// Otherwise, load the class metadata from the 'self' value's isa pointer.
3165
- metadata = emitHeapMetadataRefForHeapObject(IGF, base, baseType, fnSig,
3158
+ metadata = emitHeapMetadataRefForHeapObject(IGF, base, baseType,
3166
3159
/*suppress cast*/ true);
3167
3160
}
3168
3161
}
0 commit comments