tra accepted this revision.
tra added a comment.
This revision is now accepted and ready to land.

Note to self: don't forget to hit "submit". The comments below have been left 
unsubmitted for two weeks. Sorry about that.

The patch looks OK for the time being. That said, I do have concerns that we 
may be organically growing something that will be troublesome to deal with 
long-term.

TBH, I still can't quite make sense of where/how SPIR-V fits in the offloading 
nomenclature.

Right now we have multiple levels of offloading-related control points.

- offload targets, specified by --offload-arch. Determines the ISA of the GPU 
binary we produce.
- offload mechanism: OpenMP, CUDA runtime, HSA. Determines how we 
compile/pack/launch the GPU binaries.
- front-end: CUDA/HIP/ C/C++ w/ OpenMP.
- Driver: Determines compilation pipeline to glue everything together,

SPIR-V in these patches appears to be wearing multiple hats. 
It changes compilation pipeline, it changes offload mechanism and it changes 
offload targets. To further complicate things, it appears to be a derivative of 
the HIP compilation. I can't tell if it's an implementation detail at the 
moment, or whether it will become a more generic offload mechanism that would 
be expected to be used by other front- and back-ends. E.g. can we potentially 
compile CUDA code to target SPIR-V? Can OpenMP offload to SPIR-V?

So, the question is -- what's the right way to specify something like this in a 
consistent manner? 
`--offload` option proposed here does not seem to be a good fit. It was 
intended as a more flexible way to create a single `-cc1` sub-compilation and 
we're doing quite a bit more here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110622

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

Reply via email to