LLVM Weekly - #221, Mar 26th 2018
Welcome to the two hundred and twenty-first 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 https://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.
News and articles from around the web
Don't forget to register for EuroLLVM 2018, which will take place April 16th-17th in Bristol, UK.
The next LLVM social in Paris will take place tomorrow, March 27th. Gergö Barany will be presenting about "Finding Missed Optimizations in LLVM".
On the mailing lists
-
Mikhail Maltsev has posted an RFC on function pointer alignment. Currently computeKnownBits uses function alignment to infer the least significant bits of a function pointer, but for Arm targets the LSB is used to indicate if the function is a Thumb function. Mikhail proposes to extend the datalayout.
-
Anastasia Stulova is still seeking feedback on a proposal to add OpenCL C++ support.
-
Nicola Zaghen has shared an RFC on changing the
DEBUG()
macro toLLVM_DEBUG()
. So far, everyone agrees this is a worthwhile change. -
Dan Liew is looking to revive the DebugIR pass. This pass emits LLVM IR in debug metadata, but was removed due to lack of maintenance.
-
Chandler Carruth has shared a detailed RFC on speculative load hardening, a mitigation approach for Specture variant 1 vulnerabilities (bounds check bypass). Overhead is typically below 30%.
-
George Rimar asks if LLD should support the recently specific .note.gnu.property or Intel CET. Rafael Avila de Espindola and Rui Ueyama suggest waiting until it sees adoption or user demand.
-
In response to a query on the mailing list, Nuno Lopes summarises the current status of the 'Killing Undef and Spreading Poison' RFC.
-
Piotr Padlewski has shared a new Devirtualization v2 RFC, written with a group of collaborators. This updated proposal avoids a potential miscompilation that was possible in the previous proposal.
LLVM commits
-
The LLVM language reference manual has been updated to describe the default floating point environment. r327998.
-
An AsmParser implementation has been added for the WebAssembly backend. r328028.
-
The RISC-V backend gained codegen support for the RV32F instruction set extension (single precision floating point). r327976, r327979, r328104.
-
It is no longer possible to cast from a string to a variable reference in TableGen. r327844.
-
The latest version of the demangler from libcxxabi has been imported. r327859.
-
A new analysis printer was introduced to dump 'must execute' facts. r328004, r328015.
-
The RISC-V backend gained a peephole optimisation for loads/stores. r327381.
-
A new post-register allocation pass was added to sink copies into a successor block. r328237.
-
MIR printing,
opt -dot-cfg
and-debug
printing has been made substantially faster by making the scanning of a module for struct types lazy. r328246. -
HWASan has been ported to Linux x86-64. r328342.
-
TargetLoweringObjectFile has been moved from CodeGen to Target, MachineValueType from CodeGen to Support, and ValueTypes from CodeGen to IR. r328392, r328395, r328397.
Clang commits
-
Initial code for the clang-doc for C/C++ documentation generation has been committed. See the original RFC for more information. r328270.
-
clang-tidy gained a new checker for function calls with ignored return values. r327833.
-
Intrinsics were added for ARMv8.2-A FP16 vectors. r328277.