Skip to content

Commit 710443a

Browse files
committed
[cxx-interop][SwiftCompilerSources] Use swift::SubstitutionMap instead of BridgedSubstitutionMap
rdar://83361087
1 parent 30041a4 commit 710443a

File tree

7 files changed

+17
-34
lines changed

7 files changed

+17
-34
lines changed

SwiftCompilerSources/Sources/SIL/SubstitutionMap.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
import SILBridging
1414

1515
public struct SubstitutionMap {
16-
public let bridged: BridgedSubstitutionMap
16+
public let bridged: swift.SubstitutionMap
1717

18-
public init(_ bridged: BridgedSubstitutionMap) {
18+
public init(_ bridged: swift.SubstitutionMap) {
1919
self.bridged = bridged
2020
}
2121

2222
public init() {
23-
self.bridged = SubstitutionMap_getEmpty();
23+
self.bridged = swift.SubstitutionMap()
2424
}
2525
}

include/swift/SIL/SILBridging.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
#include "swift/Basic/BasicBridging.h"
1717
#include "swift/Basic/BridgedSwiftObject.h"
18+
#include "swift/AST/SubstitutionMap.h"
1819
#include "swift/SIL/SILLocation.h"
1920
#include <stdbool.h>
2021
#include <stddef.h>
@@ -202,10 +203,6 @@ typedef enum {
202203

203204
// AST bridging
204205

205-
typedef struct {
206-
const void * _Nonnull op;
207-
} BridgedSubstitutionMap;
208-
209206
typedef enum {
210207
UnknownBuiltin = 0,
211208
#define BUILTIN(Id, Name, Attrs) Id##Builtin,
@@ -330,8 +327,6 @@ llvm::StringRef SILType_getNominalFieldName(BridgedType type, SwiftInt index);
330327
SwiftInt SILType_getCaseIdxOfEnumType(BridgedType type,
331328
llvm::StringRef caseName);
332329

333-
BridgedSubstitutionMap SubstitutionMap_getEmpty();
334-
335330
swift::SILDebugLocation
336331
SILLocation_getAutogeneratedLocation(swift::SILDebugLocation loc);
337332

@@ -404,7 +399,7 @@ SwiftInt KeyPathInst_getNumComponents(BridgedInstruction kpi);
404399
void KeyPathInst_getReferencedFunctions(BridgedInstruction kpi, SwiftInt componentIdx,
405400
KeyPathFunctionResults * _Nonnull results);
406401

407-
BridgedSubstitutionMap ApplySite_getSubstitutionMap(BridgedInstruction inst);
402+
swift::SubstitutionMap ApplySite_getSubstitutionMap(BridgedInstruction inst);
408403
BridgedArgumentConvention
409404
ApplySite_getArgumentConvention(BridgedInstruction inst, SwiftInt calleeArgIdx);
410405
SwiftInt ApplySite_getNumArguments(BridgedInstruction inst);
@@ -438,7 +433,7 @@ BridgedInstruction SILBuilder_createCopyAddr(BridgedBuilder builder,
438433
BridgedInstruction SILBuilder_createDestroyValue(BridgedBuilder builder,
439434
BridgedValue op);
440435
BridgedInstruction SILBuilder_createApply(BridgedBuilder builder,
441-
BridgedValue function, BridgedSubstitutionMap subMap,
436+
BridgedValue function, swift::SubstitutionMap subMap,
442437
BridgedValueArray arguments);
443438
BridgedInstruction SILBuilder_createSwitchEnumInst(BridgedBuilder builder,
444439
BridgedValue enumVal, OptionalBridgedBasicBlock defaultBlock,

include/swift/SIL/SILBridgingUtils.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ inline SILType castToSILType(BridgedType type) {
4141
return SILType::getFromOpaqueValue(type.typePtr);
4242
}
4343

44-
inline SubstitutionMap castToSubstitutionMap(BridgedSubstitutionMap subMap) {
45-
return SubstitutionMap::getFromOpaqueValue(subMap.op);
46-
}
47-
4844
template <class I = SILInstruction> I *castToInst(BridgedInstruction inst) {
4945
return cast<I>(static_cast<SILNode *>(inst.obj)->castToInstruction());
5046
}

include/swift/SILOptimizer/OptimizerBridging.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ BridgedFunction NodeSet_getFunction(BridgedNodeSet set);
159159

160160
void AllocRefInstBase_setIsStackAllocatable(BridgedInstruction arb);
161161

162-
BridgedSubstitutionMap
162+
swift::SubstitutionMap
163163
PassContext_getContextSubstitutionMap(BridgedPassContext context,
164164
BridgedType bridgedType);
165165

include/swift/module.modulemap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module ASTBridging {
1010
header "AST/ASTBridging.h"
1111
header "AST/DiagnosticEngine.h"
1212
header "AST/DiagnosticConsumer.h"
13+
header "AST/SubstitutionMap.h"
1314
requires cplusplus
1415
export *
1516
}

lib/SIL/Utils/SILBridging.cpp

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -549,15 +549,6 @@ SwiftInt SILType_getCaseIdxOfEnumType(BridgedType type,
549549
return -1;
550550
}
551551

552-
553-
//===----------------------------------------------------------------------===//
554-
// SubstitutionMap
555-
//===----------------------------------------------------------------------===//
556-
557-
BridgedSubstitutionMap SubstitutionMap_getEmpty() {
558-
return {SubstitutionMap().getOpaqueValue()};
559-
}
560-
561552
//===----------------------------------------------------------------------===//
562553
// SILLocation
563554
//===----------------------------------------------------------------------===//
@@ -942,9 +933,9 @@ void KeyPathInst_getReferencedFunctions(BridgedInstruction kpi, SwiftInt compone
942933
}, [](SILDeclRef) {});
943934
}
944935

945-
BridgedSubstitutionMap ApplySite_getSubstitutionMap(BridgedInstruction inst) {
936+
SubstitutionMap ApplySite_getSubstitutionMap(BridgedInstruction inst) {
946937
auto as = ApplySite(castToInst(inst));
947-
return {as.getSubstitutionMap().getOpaqueValue()};
938+
return as.getSubstitutionMap();
948939
}
949940

950941
BridgedArgumentConvention
@@ -1075,14 +1066,14 @@ BridgedInstruction SILBuilder_createDestroyValue(BridgedBuilder b,
10751066

10761067
BridgedInstruction SILBuilder_createApply(BridgedBuilder b,
10771068
BridgedValue function,
1078-
BridgedSubstitutionMap subMap,
1069+
SubstitutionMap subMap,
10791070
BridgedValueArray arguments) {
10801071
SILBuilder builder(castToInst(b.insertBefore), castToBasicBlock(b.insertAtEnd),
10811072
b.loc.getScope());
10821073
SmallVector<SILValue, 16> argValues;
1083-
return {builder.createApply(
1084-
RegularLocation(b.loc.getLocation()), castToSILValue(function),
1085-
castToSubstitutionMap(subMap), getSILValues(arguments, argValues))};
1074+
return {builder.createApply(RegularLocation(b.loc.getLocation()),
1075+
castToSILValue(function), subMap,
1076+
getSILValues(arguments, argValues))};
10861077
}
10871078

10881079
static EnumElementDecl *getEnumElement(SILType enumType, int caseIndex) {

lib/SILOptimizer/PassManager/PassManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1551,15 +1551,15 @@ void AllocRefInstBase_setIsStackAllocatable(BridgedInstruction arb) {
15511551
castToInst<AllocRefInstBase>(arb)->setStackAllocatable();
15521552
}
15531553

1554-
BridgedSubstitutionMap
1554+
SubstitutionMap
15551555
PassContext_getContextSubstitutionMap(BridgedPassContext context,
15561556
BridgedType bridgedType) {
15571557
auto type = castToSILType(bridgedType);
15581558
auto *ntd = type.getASTType()->getAnyNominal();
15591559
auto *pm = castToPassInvocation(context)->getPassManager();
15601560
auto *m = pm->getModule()->getSwiftModule();
1561-
1562-
return {type.getASTType()->getContextSubstitutionMap(m, ntd).getOpaqueValue()};
1561+
1562+
return type.getASTType()->getContextSubstitutionMap(m, ntd);
15631563
}
15641564

15651565
void PassContext_beginTransformFunction(BridgedFunction function, BridgedPassContext ctxt) {

0 commit comments

Comments
 (0)