<div dir="ltr"><div dir="ltr">On Wed, 3 Mar 2021 at 18:41, Ronan KERYELL <<a href="mailto:ronan-list@keryell.fr">ronan-list@keryell.fr</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">But perhaps you were considering in your sentence the case where with<br>
OpenMP/SYCL/CUDA/HIP you generate LLVM for the host code part and MLIR<br>
just for the hardware accelerator parts?</blockquote><div><br></div><div>Just thinking out loud if clang couldn't be a hybrid front-end, emitting LLVM IR and MLIR for different parts of the program (for example, accelerators), and either use SPIRV (for supported accelerators) or lower to LLVM IR (for the rest). This would allow us to use MLIR directly in hybrid programming models (like OpenMP, OpenCL) and make real use of the high-level optimisations in MLIR. Perhaps SYCL wouldn't fit here.</div><div><br></div><div>I'm just going back to the overall goal of MLIR and trying to see on our current approach, what do we lower too soon to LLVM IR, so it could lower to MLIR instead, piece wise, then lower to LLVM IR (or not) later.</div></div></div>