Lines Matching defs:availability

60 // Wrapper class with helper methods for accessing availability defined in
66 // Returns the name of the direct TableGen class for this availability
86 // Returns the code for merging availability requirements.
89 // Returns the initializer expression for initializing the final availability
93 // Returns the C++ type for an availability instance.
96 // Returns the C++ statements for preparing availability instance.
99 // Returns the concrete availability instance carried in this case.
106 // The TableGen definition of this availability.
166 // Returns the availability spec of the given `def`.
170 if (def.getValue("availability")) {
172 def.getValueAsListOfDefs("availability");
185 static void emitInterfaceDef(const Availability &availability,
188 os << availability.getQueryFnRetType() << " ";
190 StringRef cppNamespace = availability.getInterfaceClassNamespace();
195 StringRef methodName = availability.getQueryFnName();
196 os << availability.getInterfaceClassName() << "::" << methodName << "() {\n"
216 Availability availability(def);
217 emitInterfaceDef(availability, os);
227 static void emitConceptDecl(const Availability &availability, raw_ostream &os) {
231 << " virtual " << availability.getQueryFnRetType() << " "
232 << availability.getQueryFnName()
237 static void emitModelDecl(const Availability &availability, raw_ostream &os) {
242 << " using Interface = " << availability.getInterfaceClassName()
244 << " " << availability.getQueryFnRetType() << " "
245 << availability.getQueryFnName()
250 << " return op." << availability.getQueryFnName() << "();\n"
258 static void emitInterfaceDecl(const Availability &availability,
260 StringRef interfaceName = availability.getInterfaceClassName();
264 StringRef cppNamespace = availability.getInterfaceClassNamespace();
271 emitConceptDecl(availability, os);
273 emitModelDecl(availability, os);
277 os << "/*\n" << availability.getInterfaceDescription().trim() << "\n*/\n";
284 os << " " << availability.getQueryFnRetType() << " "
285 << availability.getQueryFnName() << "();\n";
319 "Generate availability interface declarations",
342 // Mapping from availability class name to (enumerant, availability
347 // Place all availability specifications to their corresponding
348 // availability classes.
384 // Mapping from availability class name to (enumerant, availability
389 // Place all availability specifications to their corresponding
390 // availability classes.
436 // Place all availability specifications to their corresponding
437 // availability classes.
503 "Generate SPIR-V enum availability declarations",
511 "Generate SPIR-V enum availability definitions",
1298 // First collect all availability classes this op should implement.
1299 // All availability instances keep information for the generated interface and
1317 // Then generate implementation for each availability class.
1330 // Update with the op's specific availability spec.
1346 // Update with enum attributes' specific availability spec.
1353 // (enumerant, availability specification) pairs for this availability
1357 // Collect all cases' availability specs.
1364 // If this attribute kind does not have any availability spec from any of
1371 // availability spec.
1393 // availability interface as indication of no requirements.