[all-commits] [llvm/llvm-project] c474f8: [clang][SPIRV] Add builtin for OpGenericCastToPtrE...
Victor Lomuller via All-commits
all-commits at lists.llvm.org
Thu May 29 06:20:02 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c474f8f2404dfe5a902cdf93d678a0bfe8cc8f44
https://github.com/llvm/llvm-project/commit/c474f8f2404dfe5a902cdf93d678a0bfe8cc8f44
Author: Victor Lomuller <victor at codeplay.com>
Date: 2025-05-29 (Thu, 29 May 2025)
Changed paths:
R clang/include/clang/Basic/BuiltinsSPIRV.td
A clang/include/clang/Basic/BuiltinsSPIRVBase.td
A clang/include/clang/Basic/BuiltinsSPIRVCL.td
A clang/include/clang/Basic/BuiltinsSPIRVCommon.td
A clang/include/clang/Basic/BuiltinsSPIRVVK.td
M clang/include/clang/Basic/CMakeLists.txt
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Sema/SemaSPIRV.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/Basic/Targets/SPIR.cpp
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/TargetBuiltins/SPIR.cpp
M clang/lib/Headers/CMakeLists.txt
A clang/lib/Headers/__clang_spirv_builtins.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaSPIRV.cpp
A clang/test/CodeGenSPIRV/Builtins/generic_cast_to_ptr_explicit.c
A clang/test/Headers/spirv_functions.cpp
A clang/test/SemaSPIRV/BuiltIns/generic_cast_to_ptr_explicit.c
A clang/test/SemaSPIRV/BuiltIns/invalid_target_cl.c
A clang/test/SemaSPIRV/BuiltIns/invalid_target_vk.c
Log Message:
-----------
[clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (#137805)
The patch introduce __builtin_spirv_generic_cast_to_ptr_explicit which
is lowered to the llvm.spv.generic.cast.to.ptr.explicit intrinsic.
The SPIR-V builtins are now split into 3 differents file:
BuiltinsSPIRVCore.td,
BuiltinsSPIRVVK.td for Vulkan specific builtins, BuiltinsSPIRVCL.td for
OpenCL specific builtins
and BuiltinsSPIRVCommon.td for common ones.
The patch also introduces a new header defining its SPIR-V friendly
equivalent (__spirv_GenericCastToPtrExplicit_ToGlobal,
__spirv_GenericCastToPtrExplicit_ToLocal and
__spirv_GenericCastToPtrExplicit_ToPrivate). The functions are declared
as aliases to the new builtin allowing C-like languages to have a
definition to rely on as well as gaining proper front-end diagnostics.
The motivation for the header is to provide a stable binding for
applications or library (such as SYCL) and allows non SPIR-V targets to
provide an implementation (via libclc or similar to how it is done for
gpuintrin.h).
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list