LLVM Weekly - #169, Mar 27th 2017
Welcome to the one hundred and sixty-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.
Unfortunately I wasn't able to make it to EuroLLVM this year - I'm looking forward to videos, slides, and reports from the event!
News and articles from around the web
LLVM is taking part in Google Summer of Code again this year and applications are now open. You might also be interested in submitting a proposal for lowRISC.
Herb Sutter has written up a trip report from the Kona ISO C++ standards meeting. The big news from this meeting was obviously that C++17 has now been submitted for ISO approval.
clang-expand is a command-line tool that will intelligently "expand" a given function into the current scope. It provides its output in JSON, and offers a sample editor integration.
On the mailing lists
-
Reid Kleckner has proposed an RFC on overhauling the LLVM attribute APIs.
-
Rui Ueyama proposes improving the readability of LLD error messages, making the more informative and easy to read. As you might expect, the idea is popular.
-
Vedant Kumar has produced a proposal for supporting some UBSan issues at compile-time rather than runtime.
-
Ben Craig has shared an RFC on adding support for using libc++ in Windows kernel code.
-
Manuel Rigger notes that currently Clang -O0 will perform some optimisations that make life harder for bug finding tools like ASan or Valgrind. As Daniel Berlin points out, there are cases where at least some optimisations must be applied for correctness.
-
Kristof Beyls is collecting input for the birds of a feather session on GlobalISel at EuroLLVM this week.
LLVM commits
-
The compile time overhead for the MachineOutliner has been massively reduced, with the worst compile time increase in the LLVM test suite now being 22%. r298648.
-
A LazyValueInfo printer pass has been added, which will be useful for debugging. r298542.
-
Extensive generated tests for PPC atomic operations have been added. r298614.
-
The global instruction selector will no longer select trivially dead instructions. r298224.
-
The AMDGPU backend gained an SDWA (Sub-DWORD Addressing) peephole optimisation pass. r298365.
-
The @llvm.objectsize intrinsic was extended with a new parameter, indicating whether it should act conservatively with null pointers. r298430.
-
DataLayout::getAlignmentInfo was modified to use a binary search rather than linear scan. r298579.
-
A new stable-merge-request.sh script has been added. This will create a stable merge request bug in bugzilla for the given SVN revision and release number. r298705.
Clang commits
-
A new design proposal has been committed for backward-edge control-flow integrity for return statements. r298303.
-
A new attribute was added to distinguish between extensible and inextensible enums. r298332.
-
The
-fno-auto-profile
and-fno-profile-sample-use
command line options were added. r298446. -
Code generation for coroutine await and yield expressions was implemented. r298784.
Other project commits
-
C++17 std::byte has been implemented in libcxx. r298689.
-
The string "compatible with GNU linkers" has been added to the output of
ld.lld -version
. This should improve compatibility with libtool. r298532. -
Tests for the compiler-rt builtins have been updated to work with lit. r298339, r298714.
-
The libcxx vector::clear implementation has been tweaked, resulting in substantially better code generation. r298601.