[cfe-dev] Clang for CUDA

Mehrzad Samadi mehrzadsamadi at gmail.com
Wed Jan 23 11:33:17 PST 2013


Hi everyone,

I'm new here and I could not find my answer in this list.

I'm trying to write source to source compiler for CUDA with CLANG. CLANG
works well with CUDA but when I include cuda_runtime.h which is very
important file for CUDA benchmarks. I get these errors:

In file included from /usr/local/cuda/include/cuda_runtime.h:79:
In file included from /usr/local/cuda/include/device_functions.h:4588:
/usr/local/cuda/include/surface_indirect_functions.h:149:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:152:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:155:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:164:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:167:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:170:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:179:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:182:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:185:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp) :
"l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:194:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.trap  {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:197:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.clamp {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:200:64: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.b16.zero  {%0}, [%1, {%2}];" : "=h"(tmp.x)
: "l"(surfObject), "r"(x));
                                                               ^
/usr/local/cuda/include/surface_indirect_functions.h:395:71: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.v2.b16.trap  {%0, %1}, [%2, {%3}];" :
"=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));
                                                                      ^
/usr/local/cuda/include/surface_indirect_functions.h:398:71: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.v2.b16.clamp {%0, %1}, [%2, {%3}];" :
"=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));
                                                                      ^
/usr/local/cuda/include/surface_indirect_functions.h:401:71: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.v2.b16.zero  {%0, %1}, [%2, {%3}];" :
"=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));
                                                                      ^
/usr/local/cuda/include/surface_indirect_functions.h:410:71: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.v2.b16.trap  {%0, %1}, [%2, {%3}];" :
"=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));
                                                                      ^
/usr/local/cuda/include/surface_indirect_functions.h:413:71: error: invalid
output constraint '=h' in asm
       asm volatile ("suld.b.1d.v2.b16.clamp {%0, %1}, [%2, {%3}];" :
"=h"(tmp.x), "=h"(tmp.y) : "l"(surfObject), "r"(x));
                                                                      ^
I'm not using surface functions but they are included anyway. Is there any
way to fix this?
Am I missing anything?

Best,
Mehrzad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130123/e5f4bb47/attachment.html>


More information about the cfe-dev mailing list