]> granicus.if.org Git - clang/commitdiff
--cuda-host-only should not disable linking phase.
authorArtem Belevich <tra@google.com>
Tue, 28 Jul 2015 21:01:21 +0000 (21:01 +0000)
committerArtem Belevich <tra@google.com>
Tue, 28 Jul 2015 21:01:21 +0000 (21:01 +0000)
Host-only cuda compilation does produce valid host object
file and in some cases users do want to proceed on to the linking phase.
The change removes special case that stopped compilation pipeline at
the Assembly phase. Device-side compilation is still stopped early
by the types::getCompilationPhases().

Differential Revision: http://reviews.llvm.org/D11573

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243478 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Driver.cpp
test/Driver/cuda-options.cu

index 76df10babba865f59dc0cf434b64db76f043c737..86cf8556ef20a86421afdf8d65729ca9a50b656e 100644 (file)
@@ -174,10 +174,8 @@ phases::ID Driver::getFinalPhase(const DerivedArgList &DAL,
   } else if ((PhaseArg = DAL.getLastArg(options::OPT_S))) {
     FinalPhase = phases::Backend;
 
-    // -c and partial CUDA compilations only run up to the assembler.
-  } else if ((PhaseArg = DAL.getLastArg(options::OPT_c)) ||
-             (PhaseArg = DAL.getLastArg(options::OPT_cuda_device_only)) ||
-             (PhaseArg = DAL.getLastArg(options::OPT_cuda_host_only))) {
+    // -c compilation only runs up to the assembler.
+  } else if ((PhaseArg = DAL.getLastArg(options::OPT_c))) {
     FinalPhase = phases::Assemble;
 
     // Otherwise do everything.
index 65d4913a159e24887218bcb04a0ac67d92e85ad3..37411680b61c31aa5a0a78a771395f63119b2812 100644 (file)
@@ -27,8 +27,8 @@
 // RUN:   | FileCheck -check-prefix CUDA-ND \
 // Then compile host side and make sure we don't attempt to incorporate GPU code.
 // RUN:    -check-prefix CUDA-H -check-prefix CUDA-H-NI \
-// Make sure we don't link anything.
-// RUN:    -check-prefix CUDA-NL %s
+// Linking is allowed to happen, even if we're missing GPU code.
+// RUN:    -check-prefix CUDA-L %s
 
 // Verify that -cuda-no-host disables host-side compilation and linking
 // RUN: %clang -### -target x86_64-linux-gnu --cuda-device-only %s 2>&1 \