diff options
author | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2019-07-25 14:36:20 +0000 |
---|---|---|
committer | Jonas Hahnfeld <hahnjo@hahnjo.de> | 2019-07-25 14:36:20 +0000 |
commit | 2488ae9df155cd66253512c42aba5daef1f076be (patch) | |
tree | 42a7de40bd8a48380384478161d50659efd3fff3 /openmp/runtime/cmake | |
parent | d668260f1a8e85976e090207075545a2d97d39a1 (diff) | |
download | bcm5719-llvm-2488ae9df155cd66253512c42aba5daef1f076be.tar.gz bcm5719-llvm-2488ae9df155cd66253512c42aba5daef1f076be.zip |
[OpenMP] RISCV64 port
This is a port of libomp for the RISC-V 64-bit Linux target.
We have tested this port on a HiFive Unleashed development board
using a downstream LLVM that has support for the missing bits in
upstream. As of now, all tests are passing, including OMPT.
Patch by Ferran Pallarès!
Differential Revision: https://reviews.llvm.org/D59880
llvm-svn: 367021
Diffstat (limited to 'openmp/runtime/cmake')
-rw-r--r-- | openmp/runtime/cmake/LibompGetArchitecture.cmake | 2 | ||||
-rw-r--r-- | openmp/runtime/cmake/LibompMicroTests.cmake | 3 | ||||
-rw-r--r-- | openmp/runtime/cmake/LibompUtils.cmake | 2 | ||||
-rw-r--r-- | openmp/runtime/cmake/config-ix.cmake | 3 |
4 files changed, 9 insertions, 1 deletions
diff --git a/openmp/runtime/cmake/LibompGetArchitecture.cmake b/openmp/runtime/cmake/LibompGetArchitecture.cmake index e65cd302ed7..897f99a39a3 100644 --- a/openmp/runtime/cmake/LibompGetArchitecture.cmake +++ b/openmp/runtime/cmake/LibompGetArchitecture.cmake @@ -45,6 +45,8 @@ function(libomp_get_architecture return_arch) #error ARCHITECTURE=mips64 #elif defined(__mips__) && !defined(__mips64) #error ARCHITECTURE=mips + #elif defined(__riscv) && __riscv_xlen == 64 + #error ARCHITECTURE=riscv64 #else #error ARCHITECTURE=UnknownArchitecture #endif diff --git a/openmp/runtime/cmake/LibompMicroTests.cmake b/openmp/runtime/cmake/LibompMicroTests.cmake index 2fde724f6c7..a7bf8240bdf 100644 --- a/openmp/runtime/cmake/LibompMicroTests.cmake +++ b/openmp/runtime/cmake/LibompMicroTests.cmake @@ -211,6 +211,9 @@ else() elseif(${MIPS} OR ${MIPS64}) libomp_append(libomp_expected_library_deps libc.so.6) libomp_append(libomp_expected_library_deps ld.so.1) + elseif(${RISCV64}) + libomp_append(libomp_expected_library_deps libc.so.6) + libomp_append(libomp_expected_library_deps ld.so.1) endif() libomp_append(libomp_expected_library_deps libpthread.so.0 IF_FALSE STUBS_LIBRARY) libomp_append(libomp_expected_library_deps libhwloc.so.5 LIBOMP_USE_HWLOC) diff --git a/openmp/runtime/cmake/LibompUtils.cmake b/openmp/runtime/cmake/LibompUtils.cmake index 179c8d0f8b1..44d23637314 100644 --- a/openmp/runtime/cmake/LibompUtils.cmake +++ b/openmp/runtime/cmake/LibompUtils.cmake @@ -105,6 +105,8 @@ function(libomp_get_legal_arch return_arch_string) set(${return_arch_string} "MIPS" PARENT_SCOPE) elseif(${MIPS64}) set(${return_arch_string} "MIPS64" PARENT_SCOPE) + elseif(${RISCV64}) + set(${return_arch_string} "RISCV64" PARENT_SCOPE) else() set(${return_arch_string} "${LIBOMP_ARCH}" PARENT_SCOPE) libomp_warning_say("libomp_get_legal_arch(): Warning: Unknown architecture: Using ${LIBOMP_ARCH}") diff --git a/openmp/runtime/cmake/config-ix.cmake b/openmp/runtime/cmake/config-ix.cmake index 5404715b6d9..c08a912ff7b 100644 --- a/openmp/runtime/cmake/config-ix.cmake +++ b/openmp/runtime/cmake/config-ix.cmake @@ -246,7 +246,8 @@ else() # (LIBOMP_ARCH STREQUAL arm) OR (LIBOMP_ARCH STREQUAL aarch64) OR (LIBOMP_ARCH STREQUAL ppc64le) OR - (LIBOMP_ARCH STREQUAL ppc64)) + (LIBOMP_ARCH STREQUAL ppc64) OR + (LIBOMP_ARCH STREQUAL riscv64)) AND # OS supported? ((WIN32 AND LIBOMP_HAVE_PSAPI) OR APPLE OR (NOT WIN32 AND LIBOMP_HAVE_WEAK_ATTRIBUTE))) set(LIBOMP_HAVE_OMPT_SUPPORT TRUE) |