LLVM Weekly - #60, Feb 23rd 2015
Welcome to the sixtieth 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
LLVM/Clang 3.6.0-rc4 is now available for testing.
A new LLVM-based tainted flow analysis tool has been created. It's a tool designed to help detect timing attack vulnerabilities. An online demo is available.
The March bay-area LLVM social will take place on Thursday 5th March, along with the Game Developer's Conference.
The Cambridge LLVM social will take place on Wednesday 25th Feb.
HHVM, the optimised PHP virtual machine from Facebook plan to integrate an LLVM-based optimisation phase.
On the mailing lists
Lefteris Ioannidis has introduced himself on the mailing list. He is working on propagating parallelism at the IR level, with a hope to ultimately upstream his work. He's interested in chatting to anyone working in this area.
Eric Fiselier asks when libc++ can list Linux as an officially supported platform.
Hans Wennborg is asking for people to flesh out the 3.6 release notes with more details.
Hayden Livingston is working on a tool to help understand how LLVM IR changes after optimization passes are run and wonders about adding a new API to support this use case. Greg Fitzgerald points to his handy diffdump tool.
Bruce Mitchener suggests adding SWIG bindings to LLDB for JS and other languages.
Zephyr Zhao has shared his work on a GUI frontend to LLDB.
LLVM commits
The coding standards document has been updated now that MSVC 2012 support has been dropped. r229369.
The Orc API continues to evolve. The JITCompileCallbackManager has been added to create and manage JIT callbacks. r229461.
A new pass, the bit-tracking dead code elimination pass has been added. It tracks dead bits of integer-valued instructions and removes them when all bits are set. r229462.
The SystemZ backend now supports all TLS access models. r229652, r229654.
A new pass for constructing gc.statepoint sequences with explicit relocations was added. The pass will be further developed and bugfixed in-tree. r229945.
The old x86 vector shuffle lowering code has been removed (the new shuffle lowering code has been the default for ages and known regressions have been fixed). r229964.
A new bitset metadata format and lowering pass has been added. In the future, this will be used to allow a C++ program to efficiently verify that a vtable pointer is in the set of valid vtable pointers for the class or its derived classes. r230054.
Clang commits
clang-format gained support for JS type annotations and classes. r229700, r229701.
Most of the InstrProf coverage mapping generation code has been rewritten. r229748.
Clang learnt how to analyze FreeBSD kernel printf extensions. r229921.
Support has been added to Clang for a form of Control Flow Integrity for virtual function calls. It verifies the vptr of the correct dynamic type is being used. r230055.