jhuber6 marked 2 inline comments as done.
jhuber6 added inline comments.

================
Comment at: clang/test/Driver/offload-packager.c:12-14
+// RUN: clang-offload-packager %t.out \
+// RUN:   
--image=file=%t-sm_70.o,kind=openmp,triple=nvptx64-nvidia-cuda,arch=sm_70 \
+// RUN:   
--image=file=%t-gfx908.o,kind=openmp,triple=amdgcn-amd-amdhsa,arch=gfx908
----------------
tra wrote:
> jhuber6 wrote:
> > tra wrote:
> > > So, with no `-o` option the tool treats `--image` to both choose the 
> > > embedded image to dump and the file name to dump it into.
> > > The patch appears to have more dumping modes. E.g. file name appears to 
> > > be deriveable from the embedded image info. That should be tested, too.
> > > 
> > > Does user need to specify complete kind/triple/arch? Can I dump a subset 
> > > of images -- e.g. all images with the same triple, or all with `arch` 
> > > starting with `sm_7`?
> > > 
> > > It would also be very convenient if we could dump an image by its index 
> > > in the executable and, also, all images. I suspect these two modes would 
> > > be the ones used most often interactively.
> > > 
> > > BTW, we do not seem to have a way to list those embedded images. It would 
> > > be great to add it.
> > > So, with no -o option the tool treats --image to both choose the embedded 
> > > image to dump and the file name to dump it into.
> > > The patch appears to have more dumping modes. E.g. file name appears to 
> > > be derivable from the embedded image info. That should be tested, too.
> > I tried to write a test for this. Given no explicit filename and multiple 
> > matches it should dump it as `<input>-<triple>-<arch>.o` or similar. It 
> > works when I test it locally but when I wrote a test for this I don't think 
> > it was writing to the correct directory because the `lit` test couldn't 
> > find them.
> > > Does user need to specify complete kind/triple/arch? Can I dump a subset 
> > > of images -- e.g. all images with the same triple, or all with arch 
> > > starting with sm_7?
> > >
> > As written now, it should just write every image it finds that matches the 
> > image values. So `--image=kind=openmp` would dump everything whose producer 
> > was OpenMP. If it was `--image=kind=openmp,file=out.o` it would then write 
> > to `out.o` multiple times so you'd just end up with the last one. If you 
> > didn't provide a filename it would derive one as above. Not sure if it's 
> > worth handling this more intelligently since I think we should keep the 
> > user's requested name even if it's ambiguous.
> > > It would also be very convenient if we could dump an image by its index 
> > > in the executable and, also, all images. I suspect these two modes would 
> > > be the ones used most often interactively.
> > > 
> > > BTW, we do not seem to have a way to list those embedded images. It would 
> > > be great to add it.
> > 
> > That should be was `llvm-objdump --offloading` does, right? Or do you mean 
> > something different from just printing what's embedded.
> > lit test couldn't find them.
> 
> I see. The directory the test is run from is not necessarily the temporary 
> directory. For that matter, such a test will fail in some setups where the 
> source tree is read-only.
> I think we need something like `ar --output=dir` which is used for very 
> similar purposes.
> 
> >> Can I dump a subset of images ?
> 
> Given that we can narrow the subset to particular kind/triple/arch, it should 
> do for now.
> 
> > That should be was llvm-objdump --offloading does, right? 
> 
> Now that `lang-offload-packager` got more functionality, it would make sense 
> to make it the tool for listing embedded images, too, IMO. 
> I think we need something like ar --output=dir which is used for very similar 
> purposes.
That will work for now, I'll add that and update this patch with better testing.

> Now that clang-offload-packager got more functionality, it would make sense 
> to make it the tool for listing embedded images, too, IMO.
It shouldn't be too difficult to add since we'll be iterating through all of 
these already. I could do that in another patch.



================
Comment at: clang/tools/clang-offload-packager/ClangOffloadPackager.cpp:194-196
+              ? Saver.save(sys::path::stem(InputFile) + "-" +
+                           Binary->getTriple() + "-" + Binary->getArch() + "." 
+
+                           getImageKindName(Binary->getImageKind()))
----------------
tra wrote:
> jhuber6 wrote:
> > tra wrote:
> > > Is this guaranteed to be unique? I'd add an image index to the name. 
> > Not necessarily, you're right that it might be good to use the image's 
> > index to provide a unique name in the case of conflicts. As mentioned in 
> > another comment I'm not sure if we should modify the output file if the 
> > user specified it however.
> Agreed, user input takes precedence. 
> 
> My concern was for the clashes caused by the tool itself. There may 
> conceivably be embedded images with identical properties and we need a way to 
> distinguish between them.
> 
> 
Yeah, I'll add `.x` to the filename for that reason.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D129507

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

Reply via email to