@@ -42,77 +42,38 @@ inline RT_Kind classifyInstruction(const llvm::Instruction &I) {
42
42
if (F == 0 ) return RT_Unknown;
43
43
44
44
return llvm::StringSwitch<RT_Kind>(F->getName ())
45
- .Case (" swift_retain" , RT_Retain)
46
- .Case (" swift_retain_n" , RT_RetainN)
47
- .Case (" swift_release" , RT_Release)
48
- .Case (" swift_release_n" , RT_ReleaseN)
49
- .Case (" swift_allocObject" , RT_AllocObject)
50
- .Case (" objc_release" , RT_ObjCRelease)
51
- .Case (" objc_retain" , RT_ObjCRetain)
52
- .Case (" swift_retainUnowned" , RT_RetainUnowned)
53
- .Case (" swift_checkUnowned" , RT_CheckUnowned)
54
- .Case (" swift_bridgeObjectRetain" , RT_BridgeRetain)
55
- .Case (" swift_bridgeObjectRetain_n" , RT_BridgeRetainN)
56
- .Case (" swift_bridgeObjectRelease" , RT_BridgeRelease)
57
- .Case (" swift_bridgeObjectRelease_n" , RT_BridgeReleaseN)
58
- .Case (" swift_unknownRetain" , RT_UnknownRetain)
59
- .Case (" swift_unknownRetain_n" , RT_UnknownRetainN)
60
- .Case (" swift_unknownRelease" , RT_UnknownRelease)
61
- .Case (" swift_unknownRelease_n" , RT_UnknownReleaseN)
62
- .Case (" __swift_fixLifetime" , RT_FixLifetime)
45
+ #define SWIFT_FUNC (Name, MemBehavior, TextualName ) \
46
+ .Case (" swift_" #TextualName, RT_ ## Name)
47
+ #define OBJC_FUNC (Name, MemBehavior, TextualName ) \
48
+ .Case (" objc_" #TextualName, RT_ ## Name)
49
+ #define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC (Name, MemBehavior, TextualName ) \
50
+ .Case (" __swift_" #TextualName, RT_ ## Name)
51
+ #include " LLVMSwift.def"
52
+
63
53
#if defined(SWIFT_WRAPPER_PREFIX)
64
- .Case (SWIFT_WRAPPER_NAME (" swift_retain" ), RT_Retain)
65
- .Case (SWIFT_WRAPPER_NAME (" swift_retain_n" ), RT_RetainN)
66
- .Case (SWIFT_WRAPPER_NAME (" swift_release" ), RT_Release)
67
- .Case (SWIFT_WRAPPER_NAME (" swift_release_n" ), RT_ReleaseN)
68
- .Case (SWIFT_WRAPPER_NAME (" swift_allocObject" ), RT_AllocObject)
69
- .Case (SWIFT_WRAPPER_NAME (" objc_release" ), RT_ObjCRelease)
70
- .Case (SWIFT_WRAPPER_NAME (" objc_retain" ), RT_ObjCRetain)
71
- .Case (SWIFT_WRAPPER_NAME (" swift_retainUnowned" ), RT_RetainUnowned)
72
- .Case (SWIFT_WRAPPER_NAME (" swift_checkUnowned" ), RT_CheckUnowned)
73
- .Case (SWIFT_WRAPPER_NAME (" swift_bridgeObjectRetain" ), RT_BridgeRetain)
74
- .Case (SWIFT_WRAPPER_NAME (" swift_bridgeObjectRetain_n" ), RT_BridgeRetainN)
75
- .Case (SWIFT_WRAPPER_NAME (" swift_bridgeObjectRelease" ), RT_BridgeRelease)
76
- .Case (SWIFT_WRAPPER_NAME (" swift_bridgeObjectRelease_n" ), RT_BridgeReleaseN)
77
- .Case (SWIFT_WRAPPER_NAME (" swift_unknownRetain" ), RT_UnknownRetain)
78
- .Case (SWIFT_WRAPPER_NAME (" swift_unknownRetain_n" ), RT_UnknownRetainN)
79
- .Case (SWIFT_WRAPPER_NAME (" swift_unknownRelease" ), RT_UnknownRelease)
80
- .Case (SWIFT_WRAPPER_NAME (" swift_unknownRelease_n" ), RT_UnknownReleaseN)
54
+ #define SWIFT_FUNC (Name, MemBehavior, TextualName ) \
55
+ .Case (SWIFT_WRAPPER_NAME (" swift_" #TextualName), RT_ ## Name)
56
+ #define OBJC_FUNC (Name, MemBehavior, TextualName ) \
57
+ .Case (SWIFT_WRAPPER_NAME (" objc_" #TextualName), RT_ ## Name)
58
+ #define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC (Name, MemBehavior, TextualName )
59
+ #include " LLVMSwift.def"
81
60
#endif
61
+
82
62
// Support non-atomic versions of reference counting entry points.
83
- .Case (" swift_nonatomic_retain" , RT_Retain)
84
- .Case (" swift_nonatomic_retain_n" , RT_RetainN)
85
- .Case (" swift_nonatomic_release" , RT_Release)
86
- .Case (" swift_nonatomic_release_n" , RT_ReleaseN)
87
- .Case (" objc_nonatomic_release" , RT_ObjCRelease)
88
- .Case (" objc_nonatomic_retain" , RT_ObjCRetain)
89
- .Case (" swift_nonatomic_retainUnowned" , RT_RetainUnowned)
90
- .Case (" swift_nonatomic_checkUnowned" , RT_CheckUnowned)
91
- .Case (" swift_nonatomic_bridgeObjectRetain" , RT_BridgeRetain)
92
- .Case (" swift_nonatomic_bridgeObjectRetain_n" , RT_BridgeRetainN)
93
- .Case (" swift_nonatomic_bridgeObjectRelease" , RT_BridgeRelease)
94
- .Case (" swift_nonatomic_bridgeObjectRelease_n" , RT_BridgeReleaseN)
95
- .Case (" swift_nonatomic_unknownRetain" , RT_UnknownRetain)
96
- .Case (" swift_nonatomic_unknownRetain_n" , RT_UnknownRetainN)
97
- .Case (" swift_nonatomic_unknownRelease" , RT_UnknownRelease)
98
- .Case (" swift_nonatomic_unknownRelease_n" , RT_UnknownReleaseN)
63
+ #define SWIFT_FUNC (Name, MemBehavior, TextualName ) \
64
+ .Case (" swift_nonatomic_" #TextualName, RT_ ## Name)
65
+ #define OBJC_FUNC (Name, MemBehavior, TextualName ) \
66
+ .Case (" objc_nonatomic_" #TextualName, RT_ ## Name)
67
+ #define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC (Name, MemBehavior, TextualName )
68
+ #include " LLVMSwift.def"
69
+
99
70
#if defined(SWIFT_WRAPPER_PREFIX)
100
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_retain" ), RT_Retain)
101
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_retain_n" ), RT_RetainN)
102
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_release" ), RT_Release)
103
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_release_n" ), RT_ReleaseN)
104
- .Case (SWIFT_WRAPPER_NAME (" objc_nonatomic_release" ), RT_ObjCRelease)
105
- .Case (SWIFT_WRAPPER_NAME (" objc_nonatomic_retain" ), RT_ObjCRetain)
106
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_retainUnowned" ), RT_RetainUnowned)
107
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_checkUnowned" ), RT_CheckUnowned)
108
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_bridgeObjectRetain" ), RT_BridgeRetain)
109
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_bridgeObjectRetain_n" ), RT_BridgeRetainN)
110
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_bridgeObjectRelease" ), RT_BridgeRelease)
111
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_bridgeObjectRelease_n" ), RT_BridgeReleaseN)
112
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_unknownRetain" ), RT_UnknownRetain)
113
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_unknownRetain_n" ), RT_UnknownRetainN)
114
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_unknownRelease" ), RT_UnknownRelease)
115
- .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_unknownRelease_n" ), RT_UnknownReleaseN)
71
+ #define SWIFT_FUNC (Name, MemBehavior, TextualName ) \
72
+ .Case (SWIFT_WRAPPER_NAME (" swift_nonatomic_" #TextualName), RT_ ## Name)
73
+ #define OBJC_FUNC (Name, MemBehavior, TextualName ) \
74
+ .Case (SWIFT_WRAPPER_NAME (" objc_nonatomic_" #TextualName), RT_ ## Name)
75
+ #define SWIFT_INTERNAL_FUNC_NEVER_NONATOMIC (Name, MemBehavior, TextualName )
76
+ #include " LLVMSwift.def"
116
77
#endif
117
78
.Default (RT_Unknown);
118
79
}
0 commit comments