LLVM Weekly - #192, Sep 4th 2017
Welcome to the one hundred and ninety-second 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 [email protected], or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
LLVM 5.0.0-rc5 has been tagged. The final release should happen any time now.
The paper submission deadline for the LLVM in HPC Workshop at SC17 has been extended to Sept 8th 2017.
Registration for the Women in Compilers and Tools Reception prior to the LLVM Dev Meeting is now open.
Kamil Rytarowski has summarised recent LLVM+NetBSD work.
On the mailing lists
-
Hal Finkel, Tobias Grosser, and Michael Kruse have shared an update and RFC on integrating Polly in to LLVM. The post summarises successes over the past year and highlights areas where community consensus is required.
-
Last week's RFC on adding a 'review corner' section to LLVM Weekly received useful, positive feedback. I intend to go ahead and trial this. Thanks to Florian Hahn for demonstrating how easy it is to use the Phabricator API to help with this.
-
This week has seen two more project summaries from Google Summer of Code participants. Péter Szécsi worked on improving loop execution modelling in the Clang static analyzer. Xin Wang worked on the virtual call checker.
-
Krzysztof Parzyszek is seeking help in reviewing his patch for support for parameterisable register classes in TableGen.
-
Sean Eveson proposes adding support for recording function stack sizes, allowing changes to be tracked between different compiler versions or through code changes. Respondents suggested either using debug info or optimisation remarks.
-
Tony Jiang posted an RFC on value range based optimisation oppportunities.
-
Kostya Serebryany has been adding more LLVM fuzzing to the OSS-Fuzz project, and sought feedback on how to auto-report any bugs found. Bugs found are now public and the llvm-bugs mailing list will be CCed in reports.
-
Nathan Hawes has shared an RFC on adding index-while-building support to Clang. This is part of the efforts to upstream features introduced in XCode 9.
-
Mandeep Singh Grang has updated us on his efforts to uncover non-determinism in LLVM.
LLVM commits
-
llvm-isel-fuzzer has been introduced. As the name suggests, this is a fuzzer for instruction selection. A follow-up commit allows it to be built without linking libFuzzer, and the commit messages notes this approach may be useful for other fuzzers to ensure in-tree fuzzers remain buildable. r311964.
-
A new pass, MergeICmps has been introduced. This turns chains of integer comparisons into memcmp and is disabled by default for now. r312315.
-
The Intel Haswell instruction scheduling information has been replaced and improved. This follows the previous work to replace and improve the Sandy Bridge scheduling information. r311879.
-
The scheduling model for the AMD Zen family has seen a large update. r312237.
-
A recent change resulted in a large increase in the number of build actions for an incremental build after a new commit. This behaviour is now avoided and llvm-config.h will now longer contain revision information. The
LLVM_REVISION
macro from llvm/Support/VCSRevision.h can be used instead. r312043. -
A new handleExpected utility was added to LLVM's error handling library. r311870.
-
TableGen can now produced register info debug output using the
--gen-register-info-debug-dump
flag. r311913. -
The Machine copy propagation pass has been improved. r312328.
-
MC-layer support for Armv8.3-A complex number instructions has been added. r312228.
-
The CodingStandards document has been updated to recommend the use of range-based for loops (this has been long-standing policy, the document was just out of date). r312236.
Clang commits
-
The virtual call checker from Clang static analyzer is now path sensitive. This work was done as part of Google Sumer of Code. r311877.
-
clang-format learned to indent preprocessor directives (depending on the value of the IndentPPDirectives configuration option). r312125.
-
clang-tidy now features a SignedBitwiseCheck which complains about bitwise operations on signed integer types, as required by the High Integrity C++ Coding Standard. r312122.
Other project commits
-
A minimal runtime has been implemented for UBSan (the Undefined Behaviour Sanitizer). This is designed to be suitable for use in production builds, minimising the potential increase in attack surface as well as CPU and memory overhead. r312029.
-
The LLVM OpenCL runtime gained implementations of the shuffle and shuffle2 builtins. r312403, r312404.