LLVM Weekly - #170, Apr 3rd 2017
Welcome to the one hundred and seventieth 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
Jeremy Bennett of Embecosm has written up a helpful list of highlights of EuroLLVM 2017.
Diana Picus and the other organisers of the Stockholm LLVM social are polling to determine people's preferences for the date of the next meetup.
On the mailing lists
-
Diana Picus has posted a follow-up to the GlobalISel BoF at EuroLLVM including a number of useful links.
-
Quentin Colombet is looking for help ins testing GlobalISel on AArch64. He reports they are close to being able to enable GlobalISel at O0 by default on that platform.
-
Tom Stellard has proposed a 4.0.1 release schedule and is looking for feedback on improving the process. For instance, longer term support for stable releases, automated release testing, or automated merge requests.
-
Michael Kruse kicked off a long thread on the llvm.lifetime.start and llvm.lifetime.end intrinsics. I think a reasonable summary of the thread is that these intrinsics are often confusing to people and needs someone to invest the time in proposing and documenting new semantics for a replacement.
-
Marina Yatsina has revived the issue of supporting 'asm goto'. Respondents to the thread are unsure if the cost of supporting asm goto is worth the benefit.
LLVM commits
-
A large reduction in memory consumption for LTO has been achieved. As explained in the commit message, the newly added in-memory symbol table data structures reduce peak memory consumption for an incremental ThinLTO Chromium link on Linux from 5.4GB to 2.8GB. The improvement is even greater for COFF. r299168.
-
A large commit has landed improving support for the WebAssembly binary format. There's now also support for WebAssembly relocation and linking metadata. r299101, r299141.
-
A document has been added which walks through an example of how to use XRay to debug latency issues. r299133.
-
Support has been added for predicate implication in ScalarEvolution. This allows implications to be proven based on expression predicates, e.g.
if x > 2 then x/2 > 0
. r299205. -
The machine scheduler has been further improved for in-order processors. Schedulers can now specify instructions that cannot be issued with any other instructions. r298885.
-
-fno-builtin is now supported with LTO. r298936.
-
The GlobalISel SelectionDAG importer has been refactored to use tree walking. r299001.
-
The FastISel stat counters (e.g. NumFastISelFailMul) have been removed and replaced with optimisation remarks. r299093.
-
The DAGCombiner gained initial support for the 'contract' fast-math flag. r299096.
Clang commits
-
Support has been added for a
clang::suppress
attribute, which is intended to be used for suppressing warnings from the C++ Core Guidelines. r298880. -
Clang gained support for the
-fxray-{always,never]-instrument=
flags. r299041.
Other project commits
-
LLDB can now trace simple applications on NetBSD. r298953.
-
ThreadSanitizer gained new mutex annotations. r298809.
-
LLD now gives a prettier and more useful error message for duplicate symbols. r299280.
-
LLDB gained basic OpenBSD support, enough to analyze core dumps for 9386, amd64, arm, and arm64. r298810.