diff options
author | Nikolas Klauser <nikolasklauser@berlin.de> | 2024-01-24 11:22:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-24 11:22:43 +0100 |
commit | 4a582845597e97d245e8ffdc14281f922b835e56 (patch) | |
tree | 628fe154c820b70385de1d5c358d2aece817c265 /clang/lib | |
parent | cd7ea4ea657ea41b42fcbd0e6b33faa46608d18e (diff) | |
download | llvm-4a582845597e97d245e8ffdc14281f922b835e56.zip llvm-4a582845597e97d245e8ffdc14281f922b835e56.tar.gz llvm-4a582845597e97d245e8ffdc14281f922b835e56.tar.bz2 |
[clang] Refactor Builtins.def to be a tablegen file (#68324)
This makes the builtins list quite a bit more verbose, but IMO this is a
huge win in terms of readability.
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Basic/Builtins.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/BPF.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Sema/OpenCLBuiltins.td | 12 | ||||
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 24 | ||||
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 2 |
6 files changed, 22 insertions, 22 deletions
diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 9d4aa07..9b5bf43 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -1833,7 +1833,7 @@ void StmtPrinter::VisitAtomicExpr(AtomicExpr *Node) { case AtomicExpr::AO ## ID: \ Name = #ID "("; \ break; -#include "clang/Basic/Builtins.def" +#include "clang/Basic/Builtins.inc" } OS << Name; diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index d366989..3467847 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -38,7 +38,7 @@ static constexpr Builtin::Info BuiltinInfo[] = { {#ID, TYPE, ATTRS, nullptr, HeaderDesc::NO_HEADER, LANGS}, #define LIBBUILTIN(ID, TYPE, ATTRS, HEADER, LANGS) \ {#ID, TYPE, ATTRS, nullptr, HeaderDesc::HEADER, LANGS}, -#include "clang/Basic/Builtins.def" +#include "clang/Basic/Builtins.inc" }; const Builtin::Info &Builtin::Context::getRecord(unsigned ID) const { diff --git a/clang/lib/Basic/Targets/BPF.cpp b/clang/lib/Basic/Targets/BPF.cpp index e713e08..e3fbbb7 100644 --- a/clang/lib/Basic/Targets/BPF.cpp +++ b/clang/lib/Basic/Targets/BPF.cpp @@ -22,7 +22,7 @@ using namespace clang::targets; static constexpr Builtin::Info BuiltinInfo[] = { #define BUILTIN(ID, TYPE, ATTRS) \ {#ID, TYPE, ATTRS, nullptr, HeaderDesc::NO_HEADER, ALL_LANGUAGES}, -#include "clang/Basic/BuiltinsBPF.def" +#include "clang/Basic/BuiltinsBPF.inc" }; void BPFTargetInfo::getTargetDefines(const LangOptions &Opts, diff --git a/clang/lib/Sema/OpenCLBuiltins.td b/clang/lib/Sema/OpenCLBuiltins.td index 0cceba0..a7bdfe2 100644 --- a/clang/lib/Sema/OpenCLBuiltins.td +++ b/clang/lib/Sema/OpenCLBuiltins.td @@ -936,7 +936,7 @@ def : Builtin<"read_mem_fence", [Void, MemFenceFlags]>; def : Builtin<"write_mem_fence", [Void, MemFenceFlags]>; // OpenCL v3.0 s6.15.10 - Address Space Qualifier Functions. -// to_global, to_local, to_private are declared in Builtins.def. +// to_global, to_local, to_private are declared in Builtins.td. let Extension = FuncExtOpenCLCGenericAddressSpace in { // The OpenCL 3.0 specification defines these with a "gentype" argument indicating any builtin @@ -1448,25 +1448,25 @@ let Extension = FuncExtOpenCLCWGCollectiveFunctions in { //-------------------------------------------------------------------- // OpenCL2.0 : 6.13.16 : Pipe Functions // --- Table 27 --- -// Defined in Builtins.def +// Defined in Builtins.td // --- Table 28 --- -// Builtins taking pipe arguments are defined in Builtins.def +// Builtins taking pipe arguments are defined in Builtins.td let Extension = FuncExtOpenCLCPipes in { def : Builtin<"is_valid_reserve_id", [Bool, ReserveId]>; } // --- Table 29 --- -// Defined in Builtins.def +// Defined in Builtins.td //-------------------------------------------------------------------- // OpenCL2.0 : 6.13.17 : Enqueuing Kernels // --- Table 30 --- -// Defined in Builtins.def +// Defined in Builtins.td // --- Table 32 --- -// Defined in Builtins.def +// Defined in Builtins.td // --- Table 33 --- let Extension = FuncExtOpenCLCDeviceEnqueue in { diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 7833d5a..4d280f2 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -2471,7 +2471,7 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID, #define ATOMIC_BUILTIN(ID, TYPE, ATTRS) \ case Builtin::BI##ID: \ return SemaAtomicOpsOverloaded(TheCallResult, AtomicExpr::AO##ID); -#include "clang/Basic/Builtins.def" +#include "clang/Basic/Builtins.inc" case Builtin::BI__annotation: if (SemaBuiltinMSVCAnnotation(*this, TheCall)) return ExprError(); @@ -7869,18 +7869,18 @@ ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, static_assert(sizeof(NumArgs)/sizeof(NumArgs[0]) == NumForm && sizeof(NumVals)/sizeof(NumVals[0]) == NumForm, "need to update code for modified forms"); - static_assert(AtomicExpr::AO__c11_atomic_init == 0 && - AtomicExpr::AO__c11_atomic_fetch_min + 1 == - AtomicExpr::AO__atomic_load, + static_assert(AtomicExpr::AO__atomic_add_fetch == 0 && + AtomicExpr::AO__atomic_xor_fetch + 1 == + AtomicExpr::AO__c11_atomic_compare_exchange_strong, "need to update code for modified C11 atomics"); - bool IsOpenCL = Op >= AtomicExpr::AO__opencl_atomic_init && - Op <= AtomicExpr::AO__opencl_atomic_fetch_max; - bool IsHIP = Op >= AtomicExpr::AO__hip_atomic_load && - Op <= AtomicExpr::AO__hip_atomic_fetch_max; - bool IsScoped = Op >= AtomicExpr::AO__scoped_atomic_load && - Op <= AtomicExpr::AO__scoped_atomic_fetch_max; - bool IsC11 = (Op >= AtomicExpr::AO__c11_atomic_init && - Op <= AtomicExpr::AO__c11_atomic_fetch_min) || + bool IsOpenCL = Op >= AtomicExpr::AO__opencl_atomic_compare_exchange_strong && + Op <= AtomicExpr::AO__opencl_atomic_store; + bool IsHIP = Op >= AtomicExpr::AO__hip_atomic_compare_exchange_strong && + Op <= AtomicExpr::AO__hip_atomic_store; + bool IsScoped = Op >= AtomicExpr::AO__scoped_atomic_add_fetch && + Op <= AtomicExpr::AO__scoped_atomic_xor_fetch; + bool IsC11 = (Op >= AtomicExpr::AO__c11_atomic_compare_exchange_strong && + Op <= AtomicExpr::AO__c11_atomic_store) || IsOpenCL; bool IsN = Op == AtomicExpr::AO__atomic_load_n || Op == AtomicExpr::AO__atomic_store_n || diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 6413a48..695b871 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -7504,7 +7504,7 @@ ExprResult Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, // Extract the return type from the (builtin) function pointer type. // FIXME Several builtins still have setType in // Sema::CheckBuiltinFunctionCall. One should review their definitions in - // Builtins.def to ensure they are correct before removing setType calls. + // Builtins.td to ensure they are correct before removing setType calls. QualType FnPtrTy = Context.getPointerType(FDecl->getType()); Result = ImpCastExprToType(Fn, FnPtrTy, CK_BuiltinFnToFnPtr).get(); ResultTy = FDecl->getCallResultType(); |