================
@@ -108,6 +138,25 @@ void GPUToSPIRVPass::runOnOperation() {
     if (failed(applyFullConversion(gpuModule, *target, std::move(patterns))))
       return signalPassFailure();
   }
+
+  // For OpenCL, the gpu.func op in the original gpu.module op needs to be
----------------
jungpark-mlir wrote:

I think the problem is, the lack of spirv support in gpu dialect. For example, 
gpu.func needs to be able to wrap spirv.func so gpu-to-llvm pass (for the host 
code) can properly handle the relation between gpu.launch_func and spirv.func.
Basically, using dummy `func.func` looks little hacky and it'd be also nice if 
the divergence between Vulkan/OpenCL IR structures could be avoided. However, 
considering the progress of this commit, we can discuss this later for the 
future enhancement. 
Really appreciate this work and look forward to seeing it merged.

https://github.com/llvm/llvm-project/pull/69941
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to