From 23058f9dd4d7e18239fd63b6da52549514b45fda Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Tue, 14 Jan 2020 17:54:04 -0500 Subject: [PATCH] [OPENMP]Do not use RTTI by default for NVPTX devices. NVPTX does not support RTTI, so disable it by default. --- clang/lib/Driver/ToolChain.cpp | 3 ++- clang/test/Driver/openmp-offload-gpu.cpp | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 clang/test/Driver/openmp-offload-gpu.cpp diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index cab97b1..3ebbd30 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -68,7 +68,8 @@ static ToolChain::RTTIMode CalculateRTTIMode(const ArgList &Args, } // -frtti is default, except for the PS4 CPU. - return (Triple.isPS4CPU()) ? ToolChain::RM_Disabled : ToolChain::RM_Enabled; + return (Triple.isPS4CPU() || Triple.isNVPTX()) ? ToolChain::RM_Disabled + : ToolChain::RM_Enabled; } ToolChain::ToolChain(const Driver &D, const llvm::Triple &T, diff --git a/clang/test/Driver/openmp-offload-gpu.cpp b/clang/test/Driver/openmp-offload-gpu.cpp new file mode 100644 index 0000000..9da7308 --- /dev/null +++ b/clang/test/Driver/openmp-offload-gpu.cpp @@ -0,0 +1,20 @@ +/// +/// Perform several driver tests for OpenMP offloading +/// + +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: powerpc-registered-target +// REQUIRES: nvptx-registered-target + +/// ########################################################################### + +/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP +/// Check that the flag is passed when -fopenmp-relocatable-target is used. +// RUN: %clangxx -### -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda \ +// RUN: -save-temps -no-canonical-prefixes %s -x c++ -c 2>&1 \ +// RUN: | FileCheck -check-prefix=CHK-RTTI %s + +// CHK-RTTI: clang{{.*}}" "-triple" "nvptx64-nvidia-cuda" +// CHK-RTTI-SAME: "-fno-rtti" + -- 2.7.4