LLVM Weekly - #229, May 21st 2018
Welcome to the two hundred and twenty-ninth 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
LLVM 5.0.2 has been released. The main addition is mitigation for Spectre Variant 2 for X86 and MIPS.
On the mailing lists
-
Philip Reames proposes changing the representation of guards so they are considered explicit control flow rather than implicit control flow - i.e. they are considered to be a possible terminator. Philip suggests that although the current representation has advantages, updating upstream optimisation passes to support it would be a huge amount of work. Responses so far are in favour.
-
Vedant Kumar suggests removing tools that are only useful for testing LLVM from the binary LLVM+Clang distribution, noting tools like clang-check contribute significantly to the installed size. Feedback is being sought in that thread.
-
Fabien Giesen started a discussion on rotate instructions, suggesting that rotate intrinsics should be added. Sanjay Patel has some interesting thoughts on potential criteria or informal measures for the benefit of adding an intrinsic.
-
Chandler Carruth posted an RFC on simplifying the IR type system by removing TerminatorInst. The aim would be to remove TerminatoINst, which would allow CallInst and InvokeInst to share a base class and allow the removal of the CallSite abstraction.
-
Tom Stellard is getting ready for the 6.0.1 release, with rc2 scheduled for May 25th.
-
Jens Widell has summarized the thread on 'JumboSupport'/unity builds in Clang and proposes a path forwards.
-
Alexey Sidorin has shared proof-of-concept work on a new API for specifying a graph matcher for Clang static analyzer.
LLVM commits
-
A new script has been added to utils/ which will try to match open Phabricator reviews with potential reviewers. This script was mentioned at a EuroLLVM lightning talk. r332711.
-
GlobalISel now splits aggregates during IR translation, which is necessary to support big endian code correctly. r332449.
-
The DEBUG macro has been renamed to
LLVM_DEBUG
. r332240. -
llvm-mca gained the abstraction of a pipeline stage, and now includes a simple FetchStage. r332390.
-
SimplifyLibCalls learned to replace locked IO with unlocked IO when this can be proven to be safe. r332452.
-
The MC Assembler now matches the behaviour of the GNU assembler for comparison operators. r332215.
-
LLVM's signal handling code is now signal-safe. r332496.
-
You can now use
-Rpass-analysis=size-info
to have remarks printed which describe when a pass changes the number of IR instructions in a module. r332739.
Clang commits
-
diagtool was added to the Clang install target and so will ship with the LLVM release. It now has a man page too. r332448.
-
Early textual substitutions can now be performed for Diagnostic messages specified in TableGen. This is intended to avoid repeating strings verbatim in multiple diagnostics. r332799.