[clang] 23058f9 - [OPENMP]Do not use RTTI by default for NVPTX devices.

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 14 15:14:55 PST 2020


Author: Alexey Bataev
Date: 2020-01-14T18:12:06-05:00
New Revision: 23058f9dd4d7e18239fd63b6da52549514b45fda

URL: https://github.com/llvm/llvm-project/commit/23058f9dd4d7e18239fd63b6da52549514b45fda
DIFF: https://github.com/llvm/llvm-project/commit/23058f9dd4d7e18239fd63b6da52549514b45fda.diff

LOG: [OPENMP]Do not use RTTI by default for NVPTX devices.

NVPTX does not support RTTI, so disable it by default.

Added: 
    clang/test/Driver/openmp-offload-gpu.cpp

Modified: 
    clang/lib/Driver/ToolChain.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index cab97b1a601a..3ebbd30195b3 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 000000000000..9da7308506ae
--- /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"
+


        


More information about the cfe-commits mailing list