LLVM Weekly - #33, Aug 18th 2014 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/33>. Welcome to the thirty-third 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 Binaries for LLVM/Clang 3.5RC2 are now [available for testing](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75752). Try it on your codebases, and be sure to report any regressions. LDC 0.14.0 [has been released](https://github.com/ldc-developers/ldc/releases/tag/v0.14.0). LDC is an LLVM-based compiler for the D programming language. There's a mixture of new features and bug fixes, see the release notes for full details of what's changed. Viva64, who sell the PVS-Studio static analyzer has written up their experiences of [using the Clang static analyzer on the PVS-Studio codebase](http://www.viva64.com/en/b/0270/). It managed to find 12 issues which the blog author considers genuine bugs. ## On the mailing lists * Matt Arsenault has written on [RFC on adding fmin/fmax intrinsics](http://article.gmane.org/gmane.comp.compilers.llvm.cvs/201804). Both the R600 and AArch64 platforms support fmin/fmax instructions with semantics that match the libm functions. * Chris Matthews writes that Apple are [working on bringing up a new Darwin build cluster and switching from Buildbot to Jenkins](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75776). There was an amount of followup discussion on Buildbot vs Jenkins, and David Chisnall has [shared a patch](http://reviews.llvm.org/D4901) that makes lit produce JUnit XML output that Jenkins can consume. * Arch Robinson has written a [proposal for llvm.mem.vectorize.safelen metadata](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75769). This allows the user to bless a loop as having no memory dependences that prevent vectorization. * Daniel Berlin has written a [very brief summary of LLVM's TypeBasedAliasAnalysis](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75731) in response to a question, that others may find enlightening. * Hans Wennborg [shares his results from profiling the run-time sizes of SmallVector and similar classes](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75707). The intention is to see if there are cases where they are misused (i.e. a heap allocation always results so there is no benefit from being initially allocated on the stack). * There has been some [discussion about an extended Clang API](http://article.gmane.org/gmane.comp.compilers.clang.devel/38411). The initial discussion frames this as an 'ABI support library'. An extended Clang API could be used for automatically generating bindings to C or even C++ code (which right now Julia is using private interfaces to do). * Renato Golin has started a discussion about [a target specific parsing API](http://article.gmane.org/gmane.comp.compilers.clang.devel/38465). The [bug report](http://llvm.org/bugs/show_bug.cgi?id=20683) describes the problem more fully, which is duplication of code which performs the same parsing task (e.g. `-mfpu` on command line and the `.fpu` assembly directive). ## LLVM commits * FastISel for AArch64 will now make use of the zero register when possible and supports more addressing modes. [r215591](http://reviews.llvm.org/rL215591), [r215597](http://reviews.llvm.org/rL215597). * MIPS gained support for the .end, .end, .frame, .mask, and .fmask assembler directives. [r215359](http://reviews.llvm.org/rL215359). * ARM gained the MRS/MSR system instructions. [r215700](http://reviews.llvm.org/rL215700). ## Clang commits * Documentation has been added describing how the Language options in .clang-format files works. [r215443](http://reviews.llvm.org/rL215443). * Prefetch intrinsics were added for ARM and AArch64. [r215568](http://reviews.llvm.org/rL215568), [r215569](http://reviews.llvm.org/rL215569). * The logic for the `-include` command line parameter is now properly implemented. [r215433](http://reviews.llvm.org/rL215433). ## Other project commits * LLD now has initial support for ELF/AArch64. [r215544](http://reviews.llvm.org/rL215544). * UndefinedBehaviourSanitizer gained a returns-nonnull sanitizer. This verifies that functions annotated with `returns_nonnull` do return nonnull pointers. [r215485](http://reviews.llvm.org/rL215485). * A number of lldb tests now compile on Windows. [r215562](http://reviews.llvm.org/rL215562).