LLVM Weekly - #300, September 30th 2019
Welcome to the three hundredth 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.
This week marks another major milestone for LLVM Weekly - 300 issues, every single Monday with zero gaps. Thank you for reading!
News and articles from around the web
The SN Systems blog gives an introduction to Clang's time trace feature.
Slides and videos are now available from CppCon 2019.
Slides and videos are now available from the GNU Tools Cauldron 2019.
On the mailing lists
-
Sriraman Tallam posted an RFC on Propeller: a framework for post-link optimisations. Inspired by the performance gained demonstrated through Facebook's BOLT effort, this project from Google aims to perform similar post-link optimisations in a more scalable way.
-
Alexey Lapshin proposes adding support to LLD for removing obsolete debug info. He demonstrated large size reduction on debug builds LLVM using a prototype of this approach. Respondents suggested pursuing code reuse with dsymutil.
-
Sanjay Patel gives a heads up on recent changes to add flags/metadata/attributes on phi nodes.
-
David Tellenbach started a discussion on cases where generated assembly differs depending on presence of debug information. He outlines potential solutions to the issue.
-
Bardia Mahjour shares minutes from the loop optimisation working group meeting on September 25th. The topics discussed include delinearisation, DomTreeUpdater issues, and work on the data dependence graph.
-
Michael Woerister gave an update on attempts to exploit PGO for Rust. An issue with differing symbol names in cargo-produced binaries was resolved, but unfortunately PGO still fails to show a performance improvement for the "medium-sized" benchmark being used.
-
Reid Kleckner proposes -adding -fgnuc-version=x.y.z to Clang to allow users to set
__GNUC__
or disable all GCC macros.
LLVM commits
-
LoopFusion can now fuse guarded loops. r373018.
-
llvm-objcopy command-line parsing was factored into cross-platform and ELF-specific option parsing. r372712.
-
The AMD GPU assembler documentation was updated. r372857.
-
The LLVM C API was extended to expose the atomicrmw and cmpxchg volatile flags. r372938.
-
The LLVM user guide page gained a new section for articles related to building, packaging, and distributing LLVM. r373113.
Clang commits
-
clang-format gained support for the Whitesmiths indentation style. r372497.
-
libTooling now has a new library of source-code builders. r372595.
-
Explicit destructor calls and pseudo-destructor calls are now supported in constant evaluation, and Clang can also compute whether a variable has constant destruction if it has a constexpr evaluator. r373122, r373159.