@@ -1233,155 +1233,3 @@ AbstractionPattern AbstractionPattern::getAutoDiffDerivativeFunctionType(
1233
1233
llvm_unreachable (" called on unsupported abstraction pattern kind" );
1234
1234
}
1235
1235
}
1236
-
1237
- AbstractionPattern::CallingConventionKind
1238
- AbstractionPattern::getResultConvention (TypeConverter &TC) const {
1239
- // Tuples should be destructured.
1240
- if (isTuple ()) {
1241
- return Destructured;
1242
- }
1243
- switch (getKind ()) {
1244
- case Kind::Opaque:
1245
- // Maximally abstracted values are always passed indirectly.
1246
- return Indirect;
1247
-
1248
- case Kind::OpaqueFunction:
1249
- case Kind::OpaqueDerivativeFunction:
1250
- case Kind::PartialCurriedObjCMethodType:
1251
- case Kind::CurriedObjCMethodType:
1252
- case Kind::PartialCurriedCFunctionAsMethodType:
1253
- case Kind::CurriedCFunctionAsMethodType:
1254
- case Kind::CFunctionAsMethodType:
1255
- case Kind::ObjCMethodType:
1256
- case Kind::CXXMethodType:
1257
- case Kind::CurriedCXXMethodType:
1258
- case Kind::PartialCurriedCXXMethodType:
1259
- case Kind::CXXOperatorMethodType:
1260
- case Kind::CurriedCXXOperatorMethodType:
1261
- case Kind::PartialCurriedCXXOperatorMethodType:
1262
- // Function types are always passed directly
1263
- return Direct;
1264
-
1265
- case Kind::ClangType:
1266
- case Kind::Type:
1267
- case Kind::Discard:
1268
- // Pass according to the formal type.
1269
- return SILType::isFormallyReturnedIndirectly (getType (),
1270
- TC,
1271
- getGenericSignatureOrNull ())
1272
- ? Indirect : Direct;
1273
-
1274
- case Kind::Invalid:
1275
- case Kind::Tuple:
1276
- case Kind::ObjCCompletionHandlerArgumentsType:
1277
- llvm_unreachable (" should not get here" );
1278
- }
1279
- }
1280
-
1281
- AbstractionPattern::CallingConventionKind
1282
- AbstractionPattern::getParameterConvention (TypeConverter &TC) const {
1283
- // Tuples should be destructured.
1284
- if (isTuple ()) {
1285
- return Destructured;
1286
- }
1287
- switch (getKind ()) {
1288
- case Kind::Opaque:
1289
- // Maximally abstracted values are always passed indirectly.
1290
- return Indirect;
1291
-
1292
- case Kind::OpaqueFunction:
1293
- case Kind::OpaqueDerivativeFunction:
1294
- case Kind::PartialCurriedObjCMethodType:
1295
- case Kind::CurriedObjCMethodType:
1296
- case Kind::PartialCurriedCFunctionAsMethodType:
1297
- case Kind::CurriedCFunctionAsMethodType:
1298
- case Kind::CFunctionAsMethodType:
1299
- case Kind::ObjCMethodType:
1300
- case Kind::CXXMethodType:
1301
- case Kind::CurriedCXXMethodType:
1302
- case Kind::PartialCurriedCXXMethodType:
1303
- case Kind::CXXOperatorMethodType:
1304
- case Kind::CurriedCXXOperatorMethodType:
1305
- case Kind::PartialCurriedCXXOperatorMethodType:
1306
- // Function types are always passed directly
1307
- return Direct;
1308
-
1309
- case Kind::ClangType:
1310
- case Kind::Type:
1311
- case Kind::Discard:
1312
- // Pass according to the formal type.
1313
- return SILType::isFormallyPassedIndirectly (getType (),
1314
- TC,
1315
- getGenericSignatureOrNull ())
1316
- ? Indirect : Direct;
1317
-
1318
- case Kind::Invalid:
1319
- case Kind::Tuple:
1320
- case Kind::ObjCCompletionHandlerArgumentsType:
1321
- llvm_unreachable (" should not get here" );
1322
- }
1323
- }
1324
-
1325
- bool
1326
- AbstractionPattern::operator ==(const AbstractionPattern &other) const {
1327
- if (TheKind != other.TheKind )
1328
- return false ;
1329
-
1330
- switch (getKind ()) {
1331
- case Kind::Opaque:
1332
- case Kind::Invalid:
1333
- case Kind::OpaqueFunction:
1334
- case Kind::OpaqueDerivativeFunction:
1335
- // No additional info to compare.
1336
- return true ;
1337
-
1338
- case Kind::Tuple:
1339
- if (getNumTupleElements () != other.getNumTupleElements ()) {
1340
- return false ;
1341
- }
1342
- for (unsigned i = 0 ; i < getNumTupleElements (); ++i) {
1343
- if (getTupleElementType (i) != other.getTupleElementType (i)) {
1344
- return false ;
1345
- }
1346
- }
1347
- return true ;
1348
-
1349
- case Kind::Type:
1350
- case Kind::Discard:
1351
- return OrigType == other.OrigType
1352
- && GenericSig == other.GenericSig ;
1353
-
1354
- case Kind::ClangType:
1355
- return OrigType == other.OrigType
1356
- && GenericSig == other.GenericSig
1357
- && ClangType == other.ClangType ;
1358
-
1359
- case Kind::ObjCCompletionHandlerArgumentsType:
1360
- case Kind::CFunctionAsMethodType:
1361
- case Kind::CurriedCFunctionAsMethodType:
1362
- case Kind::PartialCurriedCFunctionAsMethodType:
1363
- return OrigType == other.OrigType
1364
- && GenericSig == other.GenericSig
1365
- && ClangType == other.ClangType
1366
- && OtherData == other.OtherData ;
1367
-
1368
- case Kind::ObjCMethodType:
1369
- case Kind::CurriedObjCMethodType:
1370
- case Kind::PartialCurriedObjCMethodType:
1371
- return OrigType == other.OrigType
1372
- && GenericSig == other.GenericSig
1373
- && ObjCMethod == other.ObjCMethod
1374
- && OtherData == other.OtherData ;
1375
-
1376
- case Kind::CXXMethodType:
1377
- case Kind::CXXOperatorMethodType:
1378
- case Kind::CurriedCXXMethodType:
1379
- case Kind::CurriedCXXOperatorMethodType:
1380
- case Kind::PartialCurriedCXXMethodType:
1381
- case Kind::PartialCurriedCXXOperatorMethodType:
1382
- return OrigType == other.OrigType
1383
- && GenericSig == other.GenericSig
1384
- && CXXMethod == other.CXXMethod
1385
- && OtherData == other.OtherData ;
1386
- }
1387
- }
0 commit comments