<div dir="ltr"><div>Hi all,</div><div><br></div><div>I was wondering what’s the current status of the “Improved LLVM backend” project</div><div>( <a href="https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend">https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend</a> ). The page mentions a</div><div>few main problems, but some seem to be already fixed:</div><div>1) Using/supporting only one version of LLVM.</div><div>   This has been done AFAIK.</div><div>2) Prebuilt binaries to be shipped together with GHC.</div><div>   I can't find anything about this. Is there a ticket? Has there been any</div><div>   progress on this?</div><div>3) Adding support for split-objs</div><div>   I found a ticket about it: <a href="https://ghc.haskell.org/trac/ghc/ticket/8300">https://ghc.haskell.org/trac/ghc/ticket/8300</a></div><div>   which was closed as WONTFIX in favor of split-sections. So I guess this can</div><div>   also be considered as done.</div><div>4) Figuring out what LLVM optimizations are useful.</div><div>   Again, I can seem to find anything here. Has anyone looked at this?</div><div>   I only found an issue about this:</div><div>   <a href="https://ghc.haskell.org/trac/ghc/ticket/11295">https://ghc.haskell.org/trac/ghc/ticket/11295</a></div><div><br></div><div>The page also mentions that the generated IR could be improved in many cases,</div><div>but it doesn't link to any tickets or discussions. Is there something I could</div><div>read to better understand what are the main problems?</div><div>The only thing I can recall is that proc point splitting is likely to cause</div><div>issues for LLVM's ability to optimize the code. (but I only found a couple of email</div><div>threads about this but couldn't find any follow-ups)</div><div><br></div><div>Thanks,</div><div>Michal</div><div><br></div></div>