Lines Matching refs:Builtin
23 Builtin, enumerator
32 PrototypeParser(StringRef Substitution, const Record *Builtin) in PrototypeParser() argument
33 : Loc(Builtin->getFieldLoc("Prototype")), Substitution(Substitution) { in PrototypeParser()
34 ParsePrototype(Builtin->getValueAsString("Prototype")); in PrototypeParser()
200 HeaderNameParser(const Record *Builtin) { in HeaderNameParser() argument
201 for (char c : Builtin->getValueAsString("Header")) { in HeaderNameParser()
207 PrintFatalError(Builtin->getLoc(), "Unexpected header name"); in HeaderNameParser()
217 void PrintAttributes(const Record *Builtin, BuiltinType BT, in PrintAttributes() argument
220 if (Builtin->isSubClassOf("LibBuiltin")) { in PrintAttributes()
225 if (Builtin->getValueAsBit("OnlyBuiltinPrefixedAliasIsConstexpr")) in PrintAttributes()
230 if (auto NS = Builtin->getValueAsOptionalString("Namespace")) { in PrintAttributes()
232 PrintFatalError(Builtin->getFieldLoc("Namespace"), "Unknown namespace: "); in PrintAttributes()
236 for (const auto *Attr : Builtin->getValueAsListOfDefs("Attributes")) { in PrintAttributes()
245 const Record *Builtin, Twine Spelling, BuiltinType BT) { in EmitBuiltinDef() argument
246 if (Builtin->getValueAsBit("RequiresUndef")) in EmitBuiltinDef()
255 case BuiltinType::Builtin: in EmitBuiltinDef()
267 PrototypeParser{Substitution, Builtin}.Print(OS); in EmitBuiltinDef()
269 PrintAttributes(Builtin, BT, OS); in EmitBuiltinDef()
274 HeaderNameParser{Builtin}.Print(OS); in EmitBuiltinDef()
278 OS << ", " << Builtin->getValueAsString("Languages"); in EmitBuiltinDef()
282 OS << ", \"" << Builtin->getValueAsString("Features") << "\""; in EmitBuiltinDef()
285 case BuiltinType::Builtin: in EmitBuiltinDef()
314 void EmitBuiltin(llvm::raw_ostream &OS, const Record *Builtin) { in EmitBuiltin() argument
316 if (Builtin->isSubClassOf("Template")) { in EmitBuiltin()
317 Templates = getTemplateInsts(Builtin); in EmitBuiltin()
325 for (StringRef Spelling : Builtin->getValueAsListOfStrings("Spellings")) { in EmitBuiltin()
328 BuiltinType BT = BuiltinType::Builtin; in EmitBuiltin()
329 if (Builtin->isSubClassOf("AtomicBuiltin")) { in EmitBuiltin()
331 } else if (Builtin->isSubClassOf("LangBuiltin")) { in EmitBuiltin()
333 } else if (Builtin->isSubClassOf("TargetBuiltin")) { in EmitBuiltin()
335 } else if (Builtin->isSubClassOf("LibBuiltin")) { in EmitBuiltin()
337 if (Builtin->getValueAsBit("AddBuiltinPrefixedAlias")) in EmitBuiltin()
338 EmitBuiltinDef(OS, Substitution, Builtin, in EmitBuiltin()
340 BuiltinType::Builtin); in EmitBuiltin()
342 EmitBuiltinDef(OS, Substitution, Builtin, FullSpelling, BT); in EmitBuiltin()
374 for (const auto *Builtin : Records.getAllDerivedDefinitions("AtomicBuiltin")) in EmitClangBuiltins() local
375 EmitBuiltin(OS, Builtin); in EmitClangBuiltins()
377 for (const auto *Builtin : Records.getAllDerivedDefinitions("Builtin")) { in EmitClangBuiltins() local
378 if (Builtin->isSubClassOf("AtomicBuiltin")) in EmitClangBuiltins()
380 EmitBuiltin(OS, Builtin); in EmitClangBuiltins()