[libclc] [libclc] Support the generic address space (PR #137183)
Wenju He via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 24 21:11:51 PDT 2025
================
@@ -420,12 +420,37 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
-D${CLC_TARGET_DEFINE}
# All libclc builtin libraries see CLC headers
-I${CMAKE_CURRENT_SOURCE_DIR}/clc/include
+ # Error on undefined macros
+ -Werror=undef
)
if( NOT "${cpu}" STREQUAL "" )
list( APPEND build_flags -mcpu=${cpu} )
endif()
+ # Generic address space support.
+ # Note: when declaring builtins, we must consider that even if a target
+ # formally/nominally supports the generic address space, in practice that
+ # target may map it to the same target address space as another address
+ # space (often the private one). In such cases we must be careful not to
+ # multiply-define a builtin in a single target address space, as it would
+ # result in a mangling clash.
+ # For this reason we must consider the target support of the generic
+ # address space separately from the *implementation* decision about whether
+ # to declare certain builtins in that address space.
+ # FIXME: Shouldn't clang automatically enable this extension based on the
+ # target?
----------------
wenju-he wrote:
we should enable __opencl_c_generic_address_space for amdgpu and nvptx in setSupportedOpenCLOpts API rather than in this CMakeLists file, right?
https://github.com/llvm/llvm-project/pull/137183
More information about the cfe-commits
mailing list