[clang] c249463 - [OpenMP] Fix `-foffload-lto` for offloading to Nvidia

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 11 11:41:06 PDT 2022


Author: Joseph Huber
Date: 2022-10-11T13:40:42-05:00
New Revision: c2494635f47d94ca1c596fe5e0983295aba81853

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

LOG: [OpenMP] Fix `-foffload-lto` for offloading to Nvidia

Summary:
A previous patch ensured that we can't use `-foffload-lto` with CUDA in
non-RDC mode. This did not correctly check for if we were actually
offloading to CUDA so it ended up preventing us from using LTO for
OpenMP.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Clang.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 93e0a18e7da9..83023a155dee 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -4851,7 +4851,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
                                options::OPT_foffload_lto_EQ)
                    ->getAsString(Args)
             << Triple.getTriple();
-      } else if (Triple.isNVPTX() && !IsRDCMode) {
+      } else if (Triple.isNVPTX() && !IsRDCMode &&
+                 JA.isDeviceOffloading(Action::OFK_Cuda)) {
         D.Diag(diag::err_drv_unsupported_opt_for_language_mode)
             << Args.getLastArg(options::OPT_foffload_lto,
                                options::OPT_foffload_lto_EQ)


        


More information about the cfe-commits mailing list