[PATCH] D45212: [HIP] Let CUDA toolchain support HIP language mode and amdgpu
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 4 09:11:17 PDT 2018
rjmccall added inline comments.
================
Comment at: include/clang/Basic/Cuda.h:61
+ GFX900,
+ GFX902,
LAST,
----------------
yaxunl wrote:
> rjmccall wrote:
> > Does this actually have anything to do with HIP? You have a lot of changes in this patch which seem to just be about supporting more GPU revisions.
> This patch not only adds support of HIP language mode but also adds support of amdgpu to CUDA toolchain.
>
> Currently HIP extension is only supported by amdgpu although in the future it may be supported by other targets.
I understand that, but I think you can separate those two patches without too much difficulty.
================
Comment at: include/clang/Driver/Options.td:556
+def offload_archs : Joined<["--"], "offload-archs=">, Flags<[DriverOption]>,
+ HelpText<"List of offload architectures for CUDA/HIP/OpenMP (e.g. sm_35,gfx803).">;
def no_cuda_gpu_arch_EQ : Joined<["--"], "no-cuda-gpu-arch=">, Flags<[DriverOption]>,
----------------
yaxunl wrote:
> rjmccall wrote:
> > Do we absolutely need the non-CUDA-related aliases here? We generally try to be good about namespacing extension-specific language options.
> >
> > I understand that you're probably trying to maintain command-line compatibility with some existing toolchain, but if it's possible to avoid this, I would be much happier.
> There were discussions about a uniform clang option for offloading sub-arcs
>
> http://lists.llvm.org/pipermail/llvm-dev/2017-February/109896.html
>
> the consensus seem to be -offload-arch or -offload-archs.
>
> This patch attempts to make that transition to use this new option.
>
> We can separate this change to a different patch though.
I don't mind the `-offload-*` options; I'm more concerned about `--host-only` and so on.
================
Comment at: include/clang/Driver/ToolChain.h:124
mutable std::unique_ptr<Tool> Clang;
+ mutable std::unique_ptr<Tool> Backend;
mutable std::unique_ptr<Tool> Assemble;
----------------
yaxunl wrote:
> rjmccall wrote:
> > "Backend" is a really generic name for this thing that is probably hyper-specific to the CUDA translation model.
> Agree. This tool actually links bunch of bitcode libraries (so called device libraries). For non-GPU targets, this is usually unnecessary since they support ISA-level linking. However most GPU targets do not support that, therefore they need this stage.
>
> How about renaming it as BitcodeLink?
DeviceLibraryLink, maybe? I wouldn't want someone to think this was related to ordinary LTO.
https://reviews.llvm.org/D45212
More information about the cfe-commits
mailing list