yaxunl added inline comments.

================
Comment at: clang/lib/Driver/Driver.cpp:105-109
+    auto HIPOffloadTargets = Args.getAllArgValues(options::OPT_offload_EQ);
+    switch (HIPOffloadTargets.size()) {
+    default:
+      D.Diag(diag::err_drv_only_one_offload_target_supported_in) << "HIP";
+      return llvm::None;
----------------
tra wrote:
> ^^^ 
> 
> This will cause issues in practice, as we're only allowed to specify 
> --offload once. 
> 
> I.e. we're neither allowed to override it (this goes contrary to how clang 
> options are handled conventionally), nor can we extend or modify the list of 
> offload variants as we can with --offload-arch.
> 
> This code initially used `getLastArg`, but that does not work for an option 
> that controls a list of values. Perhaps we should just make `--offload=` a 
> scalar value so it, at least, behaves consistently with other clang options.
You are right. I overlooked this part.

If multiple `--offload=` options are specified, they are supposed to be 
unioned. Since currently `--offload=` only accepts `amdgcn-amd-amdhsa` and 
`spirv64`, and they are mutually exclusive. I think it is OK.

In the future, `--offload=` will accept GPU archs, then this part needs to 
allow multiple `--offload=` options and more sophisticated compatibility check 
between different options.

I agree letting `--offload=` accept scalar value seems a good choice.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110622

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

Reply via email to