LLVM Weekly - #271, March 11th 2019
Welcome to the two 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
David Malcolm has written a piece for the Red Hat blog detailing the impressive usability and diagnostics improvements in GCC 9. As Chris Lattner suggests, there's plenty of opportunity for similar improvements to be made to Clang.
The next ETH Zurich compiler social will be held on the 14th March, featuring talks on latency sensitive GC for the JVM and safe execution of LLVM IR on the JVM.
LLVM 8.0.0-rc4 has been tagged. A fifth release candidate will likely be needed.
Readers may be interested in slides from the 7th March Sheffield Go meetup on "Live coding a basic Go compiler with LLVM in 20 minutes".
On the mailing lists
-
Alex Suso sought advice on the status of ARM SVE support in LLVM. This triggered some discussion, which then resulted in Renato Golin starting a new thread on the next steps for scalable vector types in IR. If you have an interest in this topic, this thread is a great summary of reviews where you can get involved.
-
Andrew Safronov proposes the upstreaming of the Expressif-implemented Tensilica Xtensa (ESP32) backend. Respondents are encouraging, with James Y Knight suggesting to follow the structure of the RISC-V LLVM patchset.
-
Gábor Horváth has shared an analysis of cases where lifetime analysis would have been useful for catching errors in recent Clang commits.
-
Erich Keane proposes exposing arbitrary precision integer types as supported by LLVM IR in Clang. The review has already attracted a range of in-depth comments.
-
Pavel Labath posted an RFC on adding a new core2yaml tool and then followed up with an RFC that instead proposes extending obj27aml with minidump support.
LLVM commits
-
OptRemarks (optimization remarks) have been renamed to "Remarks", reflecting they are useful beyond just optimization. r355439.
-
The RISC-V backend learned to handle the
-target-abi
option to llvm-mc and llc, setting the appropriate ELF flags on the output. r355771. -
The X86 backend gained a fix so that when EmitLoweredSelect encounters multiple CMOV pseudo instructions, it will skip debug intrinsics (meaning codegen isn't altered for
-g
. r355307. -
llvm-mca learned to print information about throughput bottlenecks when given the
-bottleneck-analysis
option. r355308. -
Function pointer alignment is now added to datalayout. r355685.
-
The optimiser can now convert calls to
memcmp
in to calls tobcmp
in some cases. r355672.
Clang commits
-
Options for context-sensitive PGO were added to Clang. r355331.
-
The clang-headers target was renamed to clang-resource-headers. r355340.
-
Initial support was added for the OpenMP 5.0 'allocate' directive. r355614.