summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Chan <bryan.chan@huawei.com>2019-11-21 23:35:51 -0500
committerBryan Chan <bryan.chan@huawei.com>2019-12-08 14:45:16 -0500
commit74e6ce2529fae2c3318731c6f4f77bfa92eb6eb7 (patch)
treed503e4f95147baec405213bd847b61e2076f7b6f
parent1c4dd3ae2f34541e53ad0110f261421083bc0157 (diff)
downloadbcm5719-llvm-74e6ce2529fae2c3318731c6f4f77bfa92eb6eb7.tar.gz
bcm5719-llvm-74e6ce2529fae2c3318731c6f4f77bfa92eb6eb7.zip
[Frontend] Allow OpenMP offloading to aarch64
Summary: D30644 added OpenMP offloading to AArch64 targets, then D32035 changed the frontend to throw an error when offloading is requested for an unsupported target architecture. However the latter did not include AArch64 in the list of supported architectures, causing the following unit tests to fail: libomptarget :: api/omp_get_num_devices.c libomptarget :: mapping/pr38704.c libomptarget :: offloading/offloading_success.c libomptarget :: offloading/offloading_success.cpp Reviewers: pawosm01, gtbercea, jdoerfert, ABataev Subscribers: kristof.beyls, guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D70804
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp3
-rw-r--r--clang/test/OpenMP/openmp_offload_registration.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 198ae69b765..1af2bdab61e 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -3070,7 +3070,8 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
llvm::Triple TT(A->getValue(i));
if (TT.getArch() == llvm::Triple::UnknownArch ||
- !(TT.getArch() == llvm::Triple::ppc ||
+ !(TT.getArch() == llvm::Triple::aarch64 ||
+ TT.getArch() == llvm::Triple::ppc ||
TT.getArch() == llvm::Triple::ppc64 ||
TT.getArch() == llvm::Triple::ppc64le ||
TT.getArch() == llvm::Triple::nvptx ||
diff --git a/clang/test/OpenMP/openmp_offload_registration.cpp b/clang/test/OpenMP/openmp_offload_registration.cpp
index b49af4d0e38..1aa2067ab8e 100644
--- a/clang/test/OpenMP/openmp_offload_registration.cpp
+++ b/clang/test/OpenMP/openmp_offload_registration.cpp
@@ -1,5 +1,6 @@
-// Test for offload registration code for two targets
+// Test offload registration for two targets, and test offload target validation.
// RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -fopenmp-targets=x86_64-pc-linux-gnu,powerpc64le-ibm-linux-gnu -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -fopenmp-targets=aarch64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s
// expected-no-diagnostics
void foo() {
OpenPOWER on IntegriCloud