[PATCH] D110618: [HIPSPV][2/4] Add HIPSPV tool chain

Artem Belevich via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 22 13:01:44 PST 2021


tra accepted this revision.
tra added a comment.
This revision is now accepted and ready to land.

LGTM in general, modulo push_back/append nits.



================
Comment at: clang/include/clang/Driver/Options.td:3701
   " do not include the default CUDA/HIP wrapper headers">;
+def nohipwrapperinc : Flag<["-"], "nohipwrapperinc">,
+  HelpText<"Do not include the default HIP wrapper headers">;
----------------
linjamaki wrote:
> tra wrote:
> > Is the idea to still add relevant include paths to the wrappers and SDK headers, but not `-include` the wrapper?
> > 
> > If that's the case, it should probably be generalized into `-nogpuwrapperinc` and apply to both CUDA and HIP.
> > 
> > Is the idea to still add relevant include paths to the wrappers and SDK headers, but not `-include` the wrapper?
> > 
> Include paths are meant to be excluded too. I’ll fix the option description.
> 
> > If that's the case, it should probably be generalized into `-nogpuwrapperinc` and apply to both CUDA and HIP.
> > 
> I don’t see an immediate need to generalize the option as I don’t think there will be a need for it in the CUDA path. The option could be generalized later if the need comes (add generalized option, set -nohipwrapperinc to be alias to it).
> 
Fair enough. Indeed, without the wrappers, we will not be able to parse CUDA SDK headers.


================
Comment at: clang/lib/Driver/ToolChains/HIPSPV.cpp:145
+
+  CC1Args.push_back("-fcuda-allow-variadic-functions");
+
----------------
Nit: combine with `-fcuda-is-device` into `append({})`


================
Comment at: clang/lib/Driver/ToolChains/HIPSPV.cpp:151-152
+                         options::OPT_fvisibility_ms_compat)) {
+    CC1Args.append({"-fvisibility", "hidden"});
+    CC1Args.push_back("-fapply-global-visibility-to-externs");
+  }
----------------
Nit: Combine all unconditional `push_back()` calls  into `append()`;


================
Comment at: clang/lib/Driver/ToolChains/HIPSPV.cpp:164-165
+  // TODO: Allow autovectorization when SPIR-V backend arrives.
+  CC1Args.append({"-mllvm", "-vectorize-loops=false"});
+  CC1Args.append({"-mllvm", "-vectorize-slp=false"});
+}
----------------
Nit: combine into single `append`.


================
Comment at: clang/lib/Driver/ToolChains/HIPSPV.cpp:209-210
+  llvm::sys::path::append(P, "include");
+  CC1Args.push_back("-isystem");
+  CC1Args.push_back(DriverArgs.MakeArgString(P));
+}
----------------
-> `append({})`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110618



More information about the cfe-commits mailing list