<div dir="ltr"><div><div><div>These discussions bring back memories... :-)<br><br></div>I suggest everyone who is looking into extending LLVM IR to express parallel semantic to read the list archives from September and October of 2012:<br><br><a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-September/thread.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-September/thread.html</a><br><a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/thread.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/thread.html</a><br><br></div>looking for all threads with "OpenMP" in their names.<br><br></div>Some things were discussed extensively back then; for example, this proposal from Kevin:<br><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
</span>I understand that parallelism is a very invasive concept and introducing it<br>
into a so far "sequential" IR will cause severe breakage and headaches. But I<br>
am afraid that if we accept parallelism as being a first class citizen, then I<br>
would prefer doing it as a core part of the IR.  One possibility to do this<br>
gradually might also be to have a seperate, parallel, IR, say PIR, that will be<br>
lowered to regular IR at some point (however this point is chosen). Existing<br>
optimizations can then be gradually moved from the regular IR phase to the PIR<br>
phase where appropriate and useful.  Nevertheless I do not propose to do such a<br>
thing in LLVM right now. I think this might be an option for a (bigger)<br>
research project at first.<br></blockquote></div><br></div><div class="gmail_extra">was already refuted by Chris: <a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/054042.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-October/054042.html</a><br><br></div><div class="gmail_extra">Andrey</div><div class="gmail_extra"></div></div>