<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 27, 2014 at 2:59 AM, David Chisnall <span dir="ltr"><<a href="mailto:David.Chisnall@cl.cam.ac.uk" target="_blank">David.Chisnall@cl.cam.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 27 Oct 2014, at 09:33, Alex Bradbury <<a href="mailto:asb@asbradbury.org" target="_blank">asb@asbradbury.org</a>> wrote:<br>
<br>
> The Haskell community have put together a [proposal for an improved LLVM<br>
> backend to GHC](<a href="https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend" target="_blank">https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend</a>).<br>
> They intend to ship GHC with its own local LLVM build.<br>
<br>
This post brings up an interesting point:<br>
<br>
> However, the framework is modular - we can extend LLVM with plugins. For example, several years ago, Max Bolingbroke ​wrote a plugin for LLVM's alias analysis that improved the generated code in some cases by 12%, just by teaching it GHC-specific code generation needs.<br>
><br>
> However, due to lack of API guarantees mentioned above, it becomes difficult to support such analysis for arbitrary end users, and we cannot fix or tune analysis results to specific versions of LLVM or GHC.<br>
<br>
This is a problem for anyone with an out-of-tree LLVM front end, or library, that would benefit from some custom optimisations.  Without even a nod towards API (let alone ABI) stability for the core IR classes, it's very hard for people to gain the full benefit of using LLVM, unless their code is part of the LLVM tree and follows the same release cycle as LLVM (which doesn't scale).<br></blockquote><div><br>I don't know that many of the major contributors follow the LLVM release cycle, fwiw - one of the reasons we all care about stability on ToT so very much.<br><br>(& at least Apple likely has lots of fun internal toys and they manage to follow ToT pretty closely, not sure about other major contributors - kind of the nature of many groups who keep their work out of ToT is that they're not involved in the community)<br><br>- David</div></div></div></div>