Lines Matching full: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()
256 OS << "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()
353 #if defined(BUILTIN) && !defined(LIBBUILTIN) in EmitClangBuiltins()
354 # define LIBBUILTIN(ID, TYPE, ATTRS, HEADER, BUILTIN_LANG) BUILTIN(ID, TYPE, ATTRS) in EmitClangBuiltins()
357 #if defined(BUILTIN) && !defined(LANGBUILTIN) in EmitClangBuiltins()
358 # define LANGBUILTIN(ID, TYPE, ATTRS, BUILTIN_LANG) BUILTIN(ID, TYPE, ATTRS) in EmitClangBuiltins()
362 // as normal builtin CallExprs. This macro is used for such builtins. in EmitClangBuiltins()
364 # define ATOMIC_BUILTIN(ID, TYPE, ATTRS) BUILTIN(ID, TYPE, ATTRS) in EmitClangBuiltins()
367 #if defined(BUILTIN) && !defined(TARGET_BUILTIN) in EmitClangBuiltins()
368 # define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) BUILTIN(ID, TYPE, ATTRS) in EmitClangBuiltins()
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()
389 #undef BUILTIN in EmitClangBuiltins()