LLVM Weekly - #199, Oct 23rd 2017
Welcome to the one hundred and ninety-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.
News and articles from around the web
The Zig programming language has just had its first beta release. The release notes do a good job of introducing the "Zen of Zig".
The 2017 US LLVM Developers' Meeting was held last week and was a huge success. As in previous yours, talks were recorded and will be available online in due course. There should be an announcement on the mailing list once they're available, and of course I'll spread the word here in LLVM Weekly. Tanya will be sending a survey out to attendees soon - be sure to fill it out.
On the mailing lists
-
Chandler Carruth has posted an RFC on moving to the new pass manager by default. Greg Bedwell provides some compile time and memory usage data from some internal benchmarks.
-
"rNoz" has started a thread asking for advice on source-to-source transformations using Clang. There haven't been any responses yet, but I hope that will change. This really is a great example of how to ask a question well - outlining the reasoning behind the question and demonstrating the research that has already been done in order to try to answer it.
-
Justin Bogner is proposing to move to always using short-hand MIR syntax for declaring vreg classes and register banks in a function body.
-
Eric Christopher is seeking feedback on his plan for supporting mtune. Krzysztof Parzyszek asks about features having non-boolean values (e.g. cache sizes).
-
Andrew Kelley is interested in adding an LLVM feature to determine the upper bound on the stack size for the current function (if possible).
-
Elad Colen has posted an RFC on adding intrinsics for masked vector integer division and remainder.
-
Sander De Smalen has started to post patches to implement MC layer support for AArch64 SVE, and is seeking feedback.
-
Sean McCall asks about the policy for adding third-party dependencies. In this instance, adding an external JSON library dependency to clangd in clang-tools-extra. Chandler Carruth points out that licensing can be a concern.
-
Ivan Kosarev has posted an RFC on returing !tbaa.struct tags in favour of plan !tbaa tags. The change is motivated by the fact that !tbaa.struct tags must be dropped by transformations like scalar replacement of aggregates.
-
Matthew Simpson is about to add a new called value propagation pass, to be run just after interprocedural sparse conditional constant propagation. This uses the recently added !callees metadata to propagate values used for indirect calls.
LLVM commits
-
utils/update_mir_test_checks.py
has been introduced, to allow CHECK lines for MIR files to be automatically (re)generated in a similar way toupdate_llc_test_checks.py
. A large portion of in-tree MIR tests have since been updated using this tool. r316057. -
The PowerPC backend gained MachineInstr peephole optimisations to eliminate redundant sign- and zero-extension. r315888.
-
The SparsePropagation can now perform interprocedural analysis. r315919.
-
The lib/Fuzzer directory has been deleted, as the code has been moved to compiler-rt. r315937.
-
Support for
!callees
metadata has been added. This indicates the possible callees of an indirect call. r315944. -
Support for codegen of RISC-V ALU operations has been committed. r316188.
-
docs/XRay.rst and docs/XRayExample.rst document how to generate flamegraphs from XRay traces. r316192.
Clang commits
-
Attributes in square brackets, as proposed for C2x, are now supported and can be enabled with
-fdouble-square-bracket-attributes
. r315856. -
clang-refactor will now print new code after refactoring by default rather than directly editing the source file. r316212.
Other project commits
-
Memory usage of lld has been optimised by assuming mergeable input sections are smaller than 4GiB. As reported in the commit message, lld's memory usage when linking clang with debug info drops from 2.788GiB to 2.019GiB with this patch. r316280.
-
The lldb-server test suite can now be run against the debugserver. r316010.
Review corner
The LLVM Weekly review corner serves to highlight patches that are stuck waiting awaiting review, or work from first-time contributors. See here for more information and how to submit you work for inclusion. Of course the hope is that highlighting these patches will enable LLVM Weekly readers will step up and help to get them merged. I'll be reporting back each week on any activity generated on these patches, as well as sharing a new batch. If you want your patch included you must submit it via the linked form.
There was only one patch submission last week, which I'm pleased to report did see further review activity (though a second opinion is being sought). Thank you to Roman Lebedev and Daniel Marjamäki for contributing review comments.
There are two patch submissions this week: