Hahnfeld added a comment.

In https://reviews.llvm.org/D42642#992137, @tra wrote:

> I've thought a bit more about this and there's another quirk -- symlinks.
>
> What if we've found /usr/bin/ptxas and is a symlink pointing to the real 
> ptxas in the CUDA installation? If we add /usr to the list of candidates it 
> will not help us at all. We should probably find the real path and add 
> another candidate path derived from it.


Yes, this might be a valid use case, for example linking `/usr/bin/ptxas` to 
`/opt/cuda/bin/ptxas` or something. I think there should be an LLVM function to 
get the `realpath`, let me check that.
(In fact I have symlinks in my environment but it doesn't matter in this case 
because we are just linking the complete CUDA installation to another path...)



================
Comment at: lib/Driver/ToolChains/Cuda.cpp:206
     // -nocudalib hasn't been specified.
-    if (LibDeviceMap.empty() && !Args.hasArg(options::OPT_nocudalib))
+    if (CheckLibDevice && LibDeviceMap.empty())
       continue;
----------------
tra wrote:
> Hahnfeld wrote:
> > tra wrote:
> > > I think this may be too strict.
> > > 
> > > Checking directory structure for the purposes of detecting CUDA SDK 
> > > should work well enough to weed out false detection for 'split' CUDA 
> > > installation and we've verified libdevice directory presence above. 
> > > 
> > > Checking for libdevice bitcode is somewhat orthogonal to this. IMO, 
> > > regardless of how we've found the installation directory, whether we have 
> > > suitable libdevice version there should not matter if user explicitly 
> > > passed -nocudalib. Insisting on libdevice presence in this situation 
> > > would be somewhat surprising. 
> > > 
> > > 
> > > 
> > > 
> > > 
> > So you are suggesting to revert the change to this line, right?
> Yes, if you agree with my reasoning.
> 
I generally agree that the working bitcode files are orthogonal to the 
directory structure. However I would argue that there won't be a real world 
scenario of an empty directory called `nvvm/libdevice` without any libdevice 
files in there. That said it probably doesn't make a difference, so I'll follow 
the separation of concerns.


https://reviews.llvm.org/D42642



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

Reply via email to