LLVM Weekly - #171, Apr 10th 2017
Welcome to the one hundred and seventy-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
A tech preview of Kotlin/Native has been released, which of course uses LLVM for code generation. As described in the blog post, no work has been done yet on performance optimisation.
The Haskell community are finding much improved link times with LLD.
There will be an LLVM users and developers social meetup on the 12th April in Sydney, Australia. RSVP on the meetup page if you'd like to attend.
The upcoming Italy LLVM social will be held on the 21st April. Please register if you would like to attend.
On the mailing lists
-
Hal Finkel shared a summary of a rough design for a type-based alias analysis sanitizer. Stephen Kell shared his experience with a somewhat related work, a tool for detecting bad pointer casts.
-
David Blaikie started a discussion about the use of widescale automated cleanups in the LLVM codebase, e.g. clang-tidy. Are these sort of patches welcome? Should the normal code review process be used? Mehdi Amini has a detailed view.
-
Kamil Rytarowski has shared an update on LLDB/NetBSD work.
-
Peter Smith has written an RFC on supporting range thunks in LLD.
-
Kristof Beyls has performed some initial analysis of cases where the GlobalISel produces slower code than current O0.
-
Dean Michael Berris is looking for feedback on custom event logging in XRay. He notes the same functionality might be useful in other situations.
-
Discussion about support for 'asm goto' in LLVM/Clang has continued. Chandler Carruth pointed out that the use cases of asm goto might be better supported with a new intrinsic.
-
Peter Collingbourne is looking for feedback on his RFC to add a string table to the bitcode format. He then followed up with benchmark results and patches for the three suggestions explored in the thread.
-
Nick Johnson raised a good question about modelling long register reservations. Unfortunately, it has no answers yet!
LLVM commits
-
GlobalISel gained support for nested instruction matching. r299430.
-
LLVM's ADT helpers now includes a generic breadth-first-search graph iterator. r299660.
-
ARM's ASM parser will now give better error messages when immediates are out of range. r299358.
-
MCAsmBackend::applyFixup now takes an MCContext argument which can be used for error reporting. r299529.
-
The AMDGPU sub-dword addressing peephole optimisations are now enabled by default. r299536.
-
lit has been modified to use process pools for test execution, which improves test execution startup time particular on Windows. r299560.
Clang commits
-
Clang's analyzer gained support for the Z3 theorem prover as a constraint manager backend. r299463.
-
A new
#pragma clang fp
was added to allow floating-point options to be specified in a scoped manner. r299470. -
clangd gained code completion support. r299421.
Other project commits
LLD's error message formatting for incompatible relocations has been improved. r299390.
-
Polly gained new 'performance monitor' functionality. The generated code is instrumented and runtime information will be printed after program exit, e.g.the number of cycles spent in SCoPs (static control parts). This gives an indication of how much scope there is for exploiting polyhedral optimisations in a program. r299359.
-
LLDB gained a new C++ function name parser. r299721.
-
The compiler-rt builtins tests now pass on Windows. r299780.