@@ -47,9 +47,65 @@ let cppNamespace = "::cir" in {
47
47
: OpInterface<" CIRGlobalValueInterface" , [Symbol]> {
48
48
49
49
let methods = [
50
+ InterfaceMethod<" " ,
51
+ " bool" , " hasExternalLinkage" , (ins), [{}],
52
+ /* defaultImplementation=*/ [{
53
+ return cir::isExternalLinkage ($_op.getLinkage ());
54
+ }]
55
+ >,
50
56
InterfaceMethod<" " ,
51
57
" bool" , " hasAvailableExternallyLinkage" , (ins), [{}],
52
- /* defaultImplementation=*/ [{ return false ; }]
58
+ /* defaultImplementation=*/ [{
59
+ return cir::isAvailableExternallyLinkage ($_op.getLinkage ());
60
+ }]
61
+ >,
62
+ InterfaceMethod<" " ,
63
+ " bool" , " hasLinkOnceLinkage" , (ins), [{}],
64
+ /* defaultImplementation=*/ [{
65
+ return cir::isLinkOnceLinkage ($_op.getLinkage ());
66
+ }]
67
+ >,
68
+ InterfaceMethod<" " ,
69
+ " bool" , " hasLinkOnceAnyLinkage" , (ins), [{}],
70
+ /* defaultImplementation=*/ [{
71
+ return cir::isLinkOnceAnyLinkage ($_op.getLinkage ());
72
+ }]
73
+ >,
74
+ InterfaceMethod<" " ,
75
+ " bool" , " hasLinkOnceODRLinkage" , (ins), [{}],
76
+ /* defaultImplementation=*/ [{
77
+ return cir::isLinkOnceODRLinkage ($_op.getLinkage ());
78
+ }]
79
+ >,
80
+ InterfaceMethod<" " ,
81
+ " bool" , " hasWeakLinkage" , (ins), [{}],
82
+ /* defaultImplementation=*/ [{
83
+ return cir::isWeakLinkage ($_op.getLinkage ());
84
+ }]
85
+ >,
86
+ InterfaceMethod<" " ,
87
+ " bool" , " hasWeakAnyLinkage" , (ins), [{}],
88
+ /* defaultImplementation=*/ [{
89
+ return cir::isWeakAnyLinkage ($_op.getLinkage ());
90
+ }]
91
+ >,
92
+ InterfaceMethod<" " ,
93
+ " bool" , " hasWeakODRLinkage" , (ins), [{}],
94
+ /* defaultImplementation=*/ [{
95
+ return cir::isWeakODRLinkage ($_op.getLinkage ());
96
+ }]
97
+ >,
98
+ InterfaceMethod<" " ,
99
+ " bool" , " hasInternalLinkage" , (ins), [{}],
100
+ /* defaultImplementation=*/ [{
101
+ return cir::isInternalLinkage ($_op.getLinkage ());
102
+ }]
103
+ >,
104
+ InterfaceMethod<" " ,
105
+ " bool" , " hasPrivateLinkage" , (ins), [{}],
106
+ /* defaultImplementation=*/ [{
107
+ return cir::isPrivateLinkage ($_op.getLinkage ());
108
+ }]
53
109
>,
54
110
InterfaceMethod<" " ,
55
111
" bool" , " hasLocalLinkage" , (ins), [{}],
@@ -64,9 +120,9 @@ let cppNamespace = "::cir" in {
64
120
}]
65
121
>,
66
122
InterfaceMethod<" " ,
67
- " bool" , " isExternalLinkage " , (ins), [{}],
123
+ " bool" , " hasCommonLinkage " , (ins), [{}],
68
124
/* defaultImplementation=*/ [{
69
- return cir::isExternalLinkage ($_op.getLinkage ());
125
+ return cir::isCommonLinkage ($_op.getLinkage ());
70
126
}]
71
127
>,
72
128
InterfaceMethod<" " ,
@@ -89,11 +145,23 @@ let cppNamespace = "::cir" in {
89
145
$_op.setDsolocal (val);
90
146
}]
91
147
>,
148
+ InterfaceMethod<" " ,
149
+ " bool" , " isDSOLocal" , (ins), [{}],
150
+ /* defaultImplementation=*/ [{
151
+ return $_op.getDsolocal ();
152
+ }]
153
+ >,
154
+ InterfaceMethod<" " ,
155
+ " bool" , " isWeakForLinker" , (ins), [{}],
156
+ /* defaultImplementation=*/ [{
157
+ return cir::isWeakForLinker ($_op.getLinkage ());
158
+ }]
159
+ >
92
160
];
93
161
let extraClassDeclaration = [{
94
- bool hasDefaultVisibility ();
95
- bool canBenefitFromLocalAlias ();
96
- }];
162
+ bool hasDefaultVisibility ();
163
+ bool canBenefitFromLocalAlias ();
164
+ }];
97
165
}
98
166
99
167
} // namespace cir
0 commit comments