<div dir="ltr">I think the idea of more expanded frontend support library makes sense. The main use case that I've heard for such a library is to help frontends generate LLVM IR that interfaces with the local native C ABI.<div><br></div><div>However, I wonder if OpenMP should be its own (sub?) library, since I can't imagine that Swift, Rust, or Julia will need this OpenMP logic. It seems specific to C and Fortran. I was thinking something like llvm/lib/Frontend/OpenMP.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 12, 2019 at 9:20 PM Doerfert, Johannes via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I was hoping to introduce a new top level library in llvm/lib/Frontend<br>
for code that is (mainly) used by LLVM frontends but not by one<br>
exclusively. At first, I would place the OpenMP-IR-Builder [1] (and related<br>
code [0]) there. This Builder translates "OpenMP directives" to LLVM-IR<br>
and is supposed to be reused in Flang.<br>
<br>
First, I tried to place the OpenMP-IR-Builder into llvm/IR, right next<br>
to the llvm::IRBuilder, but it would soon introduce a dependence on<br>
other libraries (first TransformUtils) [2].<br>
<br>
There are more things (especially parts of Clang) that could arguably be<br>
shared across frontends and therefore be moved into a such a dedicated<br>
location. If it turns out this is a controversial RFC, we will provide<br>
examples and reasons.<br>
<br>
I hope this is fairly straightforward as this does not introduce any<br>
drawbacks (I know of).<br>
<br>
Please let me know if you have an opinion on this.<br>
<br>
Thanks,<br>
  Johannes<br>
<br>
<br>
<br>
<br>
[0] <a href="https://reviews.llvm.org/D69853" rel="noreferrer" target="_blank">https://reviews.llvm.org/D69853</a><br>
[1] <a href="https://reviews.llvm.org/D69785" rel="noreferrer" target="_blank">https://reviews.llvm.org/D69785</a><br>
[2] <a href="https://reviews.llvm.org/D70109" rel="noreferrer" target="_blank">https://reviews.llvm.org/D70109</a><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>