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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits