[Openmp-commits] [PATCH] D101213: [libomptarget] Enable AMDGPU devicertl
Jon Chesterfield via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Fri Apr 23 18:21:24 PDT 2021
JonChesterfield updated this revision to Diff 340218.
JonChesterfield added a comment.
- detect aux triple, following nvptx
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101213/new/
https://reviews.llvm.org/D101213
Files:
openmp/libomptarget/deviceRTLs/CMakeLists.txt
openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
Index: openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
===================================================================
--- openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
+++ openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
@@ -67,6 +67,10 @@
__kmpc_impl_all_lanes = ~(__kmpc_impl_lanemask_t)0
};
-EXTERN int printf(const char *, ...);
+// The return code of printf is not checked in the call sites in this library.
+// A call to a function named printf currently hits some special case handling
+// for opencl, which translates to calls that do not presently exist for openmp
+// Therefore, for now, stub out printf while building this library.
+#define printf(...)
#endif
Index: openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
===================================================================
--- openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+++ openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
@@ -36,6 +36,18 @@
set(AOMP_BINDIR ${LLVM_BUILD_BINARY_DIR}/bin)
endif()
+# Copied from nvptx CMakeLists
+if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
+ set(aux_triple x86_64-unknown-linux-gnu)
+elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "ppc64le")
+ set(aux_triple powerpc64le-unknown-linux-gnu)
+elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
+ set(aux_triple aarch64-unknown-linux-gnu)
+else()
+ libomptarget_say("Not building AMDGCN device RTL: unknown host arch: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ return()
+endif()
+
libomptarget_say("Building AMDGCN device RTL. LLVM_COMPILER_PATH=${AOMP_BINDIR}")
project(omptarget-amdgcn)
@@ -104,7 +116,7 @@
-ffreestanding
-target amdgcn-amd-amdhsa
-emit-llvm
- -Xclang -aux-triple -Xclang x86_64-unknown-linux-gnu # see nvptx
+ -Xclang -aux-triple -Xclang ${aux_triple}
-fopenmp -fopenmp-cuda-mode -Xclang -fopenmp-is-device
-D__AMDGCN__
-Xclang -target-cpu -Xclang ${mcpu}
@@ -154,6 +166,6 @@
add_custom_target(lib${libname}-${mcpu} ALL DEPENDS ${bc_libname})
install(FILES ${OUTPUTDIR}/${bc_libname}
- DESTINATION "${OPENMP_INSTALL_LIBDIR}/libdevice"
+ DESTINATION "${OPENMP_INSTALL_LIBDIR}"
)
endforeach()
Index: openmp/libomptarget/deviceRTLs/CMakeLists.txt
===================================================================
--- openmp/libomptarget/deviceRTLs/CMakeLists.txt
+++ openmp/libomptarget/deviceRTLs/CMakeLists.txt
@@ -10,4 +10,5 @@
#
##===----------------------------------------------------------------------===##
+add_subdirectory(amdgcn)
add_subdirectory(nvptx)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101213.340218.patch
Type: text/x-patch
Size: 2564 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20210424/d60f7d4e/attachment.bin>
More information about the Openmp-commits
mailing list