tra added a comment.

This particular change is largely cosmetic. I've just spotted this nit while I 
was debugging a different problem.
It's also related to module ID.

We're trying to compile NCCL 2.3 with -fcuda-rdc and we were getting duplicate 
symbols when we tried to link multiple object files compiled from the same 
source file.
E.g.

  clang++ -DPART1 -o foo-1.o  foo.cu
  clang++ -DPART2 -o foo-2.o  foo.cu
  ...
  nvlink ....

The stubs generated by nvlink ended up with conflicting names (based on module 
ID) that were identical for all foo-*.o.

It appears that clang generates ID based on the source file name only, so all 
foo-*.o end up with identical ID. 
NVCC, on the other hand, appears to generate ID based on some other factors 
(compiler flags? preprocessed TU source?) so each object file gets a unique ID.

For now we've worked around this by renaming the source files before 
compilation of each part, but we will need to find a better solution.


https://reviews.llvm.org/D52938



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

Reply via email to