LLVM Weekly - #33, Aug 18th 2014
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.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@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.
The canonical home for this issue can be found here at llvmweekly.org.
News and articles from around the web
Binaries for LLVM/Clang 3.5RC2 are now available for testing. Try it on your codebases, and be sure to report any regressions.
LDC 0.14.0 has been released. 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. 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. 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. There was an amount of followup discussion on Buildbot vs Jenkins, and David Chisnall has shared a patch that makes lit produce JUnit XML output that Jenkins can consume.
Arch Robinson has written a proposal for llvm.mem.vectorize.safelen metadata. 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 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. 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. 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. The bug report 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, r215597.
MIPS gained support for the .end, .end, .frame, .mask, and .fmask assembler directives. r215359.
ARM gained the MRS/MSR system instructions. r215700.
Clang commits
Documentation has been added describing how the Language options in .clang-format files works. r215443.
Prefetch intrinsics were added for ARM and AArch64. r215568, r215569.
The logic for the
-include
command line parameter is now properly implemented. r215433.