[PATCH] D76365: [cuda][hip] Add CUDA builtin surface/texture reference support.

Michael Liao via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 27 20:55:51 PDT 2020


hliao added a comment.

In D76365#1947103 <https://reviews.llvm.org/D76365#1947103>, @tra wrote:

> In D76365#1946938 <https://reviews.llvm.org/D76365#1946938>, @hliao wrote:
>
> > The new revision is accepted, right? Just want to confirm as it seems you accept it before I posted the new change.
>
>
> The approval was for the old version. I didn't undo it when I reopened the review. The diff looks OK, though the last variant still leaves open the question of what's the meaning of these attributes and what are the restrictions on their use.
>
> So what's the reasonable thing to do if I write something like this:
>
>   __attribute__((device_builtin_surface_type)) int foo; // Ignore? Warn? Error? Do something sensible?
>


For such case, NVCC reports the following error:

  kernel.cu(3): error: attribute "device_builtin_surface_type" does not apply here
  
  1 error detected in the compilation of "kernel.cpp1.ii"

That error is generated after `nvcc --keep -g -c kernel.cu` from this sample code (`kernel.cu`)

  #include <cuda.h>
  
  __attribute__((device_builtin_surface_type)) int foo;
  
  int f() {
    return foo;
  }

I changed that sample code a little bit to this one

  #include <cuda.h>
  
  #if 1
  typedef __attribute__((device_builtin_surface_type)) int dev_texsurf_int_t;
  dev_texsurf_int_t foo;
  #else
  __attribute__((device_builtin_surface_type)) int foo;
  #endif
  
  int f() {
    return foo;
  }

It triggers a crash in NVCC with the same compilation command line.

We may enhance clang to report an error instead of a warning only so far.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76365





More information about the cfe-commits mailing list