tra added a comment.

OK. I'm going to land it then.


================
Comment at: clang/lib/Driver/Driver.cpp:4396-4398
+  bool SingleDeviceOutput = !llvm::any_of(OffloadActions, [](Action *A) {
+    return A->getType() == types::TY_Nothing;
+  }) && isa<CompileJobAction>(HostAction);
----------------
`any_of(A->getType() == types::TY_Nothing)` looks like a rather indirect way to 
infer that we have `-fsyntax-only`. Would there be any other legitimate case 
when we'd have `Ty_Nothing` actions?





================
Comment at: clang/lib/Driver/Driver.cpp:4402
       /*BoundArch=*/nullptr, isa<CompileJobAction>(HostAction) ? DDep : DDeps);
-  return C.MakeAction<OffloadAction>(
-      HDep, isa<CompileJobAction>(HostAction) ? DDep : DDeps);
+  return C.MakeAction<OffloadAction>(HDep, SingleDeviceOutput ? DDep : DDeps);
 }
----------------
Assuming that we're guaranteed that all actions produce no outputs, can we just 
pass an empty array if `-fsyntax-only` is specified?




================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:4503
   for (const InputInfo &I : Inputs) {
-    if (&I == &Input) {
-      // This is the primary input.
+    if (&I == &Input || I.getType() == types::TY_Nothing) {
+      // This is the primary input or contains nothing.
----------------
.. and if we don't propagate no-output actions, there would be no need to 
filter them here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133161/new/

https://reviews.llvm.org/D133161

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to