LLVM Weekly - #76, Jun 15th 2015
Welcome to the seventy-sixth 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
The big news this week is that Apple have announced Swift 2.0 and, perhaps more importantly, that Swift will be open source later this year. The intention is that iOS, OS X and Linux will be supported at release.
On the mailing lists
Quentin Colombet has posted a helpful clarification on the restrictions of a MachineFunctionPass.
Getting frustrated maintaining your out-of-tree LLVM backend? It's comforting for me at least to know things could be worse. Patrik Hägglund reports he and his colleague maintain patches to support 16-bit bytes and 24/40-bit MachineValueTypes.
Chandler Carruth is planning some AliasAnalysis refactoring for the new pass manager. He's asking for feedback the general plan as well as the all-important question of naming conventions.
Zia Ansari has shared an interesting summary of an investigation of performance swings on Intel architectures related to the post-decode micro-op cache. A PPTX-formatted summary is available here.
LLVM commits
The loop vectorizer gained an optimisation for interleaved memory access. It is disabled by default but can be turned on using
-enable-interleaved-mem-accesses=true
. An AArch64InterleavedAccess pass was also added. r239291, r239514.A prototype for 32-bit SEH (Structured Exception Handling) has been added. r239433.
LLVM has grown LibDriver and llvm-lib, intended to provide a lib.exe compatible utility. r239434.
x86 gained a new reassociation MachineCombiner optimisation to increase ILP. r239486.
The R600 backend has now been renamed to AMDGPU. r239657.
Clang commits
Support for C99 partial re-initialization behaviour has been implemented. r239446.
Clang gained support for the BPF backend. r239496.
The loop vectorize pragma now recognises
assume_safety
. This will tell loop access analysis to skip memory dependency checking. r239572.The target attribute is now supported. Much like GCC's target attribute, it allows adding subtarget features and changing the CPU for a particular function. r239579.