LLVM Weekly - #65, Mar 30th 2015 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/65>. Welcome to the sixty-fifth issue of LLVM Weekly, a weekly newsletter (published every Monday) covering developments in LLVM, Clang, and related projects. LLVM Weekly is brought to you by [Alex Bradbury](http://asbradbury.org). Subscribe to future issues at <http://llvmweekly.org> and pass it on to anyone else you think may be interested. Please send any tips or feedback to <asb at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web The Z3 theorem prover from Microsoft Research is [now on Github](https://github.com/Z3Prover/z3/), and more importantly now [released under the MIT license](https://github.com/Z3Prover/z3/commit/40269c8511ca343bc6848cae8c4f2d0f0455b949). This is a true open source license allowing commercial use, unlike the previous non-commercial use only license. It's been used with LLVM in the [ALIVe project](http://blog.regehr.org/archives/1170). The [schedule](http://llvm.org/devmtg/2015-04/) for EuroLLVM has been published. There are still a number of [early registration tickets left](http://www.eventbrite.com/e/eurollvm-2015-tickets-15350278095). If you can be in London on 13th and 14th of April then I'd highly recommend registering. ## On the mailing lists * Tom Stellard, maintainer of the R600 backend has a [question about manipulating the machine scheduler to intermix ALU instruction with loads](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84045). * Sanjoy Das is seeking feedback on [an optimisation issue he's seeing due to `llvm.$opt.with.overflow` intrinsics](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84037). There is some followup discussion on how this should be dealt with. * Martin O'Riordan from Movidius [asks for guidance on submitting contributing changes back upstream](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84069). Tom Stellard has a [useful response](http://article.gmane.org/gmane.comp.compilers.clang.devel/41976). * Dylan McKay is working on an AVR backend port and is [seeking advice on lowering division calls](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84057). The current version of his backend is [here](https://github.com/avr-llvm/llvm). * Benoit Belley writes in with [an optimisation puzzle](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83985), looking for an explanation for why an icmp isn't removed. Daniel Berlin responds just a couple of hours later with [an explanation of the missed optimisation](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83985) as well as a path to fix it. * Gordon Kaiser is looking for [anyone interested in a backend for the Fujitsu FR-series processors](http://article.gmane.org/gmane.comp.compilers.llvm.devel/83979), now manufactured by Spansion. ## LLVM commits * The GlobalMerge pass will no longer run at O1 on AArch64+ARM, and instead will only be enabled at O3. [r233024](http://reviews.llvm.org/rL233024). * A float2int pass was added which, as the name suggests, attempts to demote from float to int where possible. [r233062](http://reviews.llvm.org/rL233062). * A simple Orc-based lazy JIT has been added to lli. [r233182](http://reviews.llvm.org/rL233182). * LLVM gained support for PowerPC hardware transactional memory. [r233204](http://reviews.llvm.org/rL233204). * The ARMv8.1a architecture has been added along with some of its new instructions. [r233290](http://reviews.llvm.org/rL233290), [r233301](http://reviews.llvm.org/rL233301) ## Clang commits * The on-disk hash table for modules should now have a stable representation. [r233156](http://reviews.llvm.org/rL233156), [r233249](http://reviews.llvm.org/rL233249). * Intrinsics have been added for PowerPC hardware transaction memory support. [r233205](http://reviews.llvm.org/rL233205). * An initial version of a clang-fuzzer has been added, making use of the LLVMFuzzer library. [r233455](http://reviews.llvm.org/rL233455). ## Other project commits * libclc gained more builtin implementations. [r232977](http://reviews.llvm.org/rL232977), [r232965](http://reviews.llvm.org/rL232965), [r232964](http://reviews.llvm.org/rL232964). * lld learnt how to understand the MIPS N64 relocation record format (which is described in the commit message). [r233057](http://reviews.llvm.org/rL233057). * lld's ARM support has improved with with the addition of indirect function handling and GOT relocations. [r233383](http://reviews.llvm.org/rL233383), [r233277](http://reviews.llvm.org/rL233277).