[llvm-dev] LLVM Weekly - #192, Sep 4th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 4 10:59:20 PDT 2017


LLVM Weekly - #192, Sep 4th 2017
================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/192>.

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](http://asbradbury.org). Subscribe to future issues at
<http://llvmweekly.org> and pass it on to anyone else you think may be
interested. Please send any tips or feedback to <asb at asbradbury.org>, or
@llvmweekly or @asbradbury on Twitter.


## News and articles from around the web

LLVM 5.0.0-rc5 has been
[tagged](http://lists.llvm.org/pipermail/llvm-dev/2017-September/117066.html).
The final release should happen any time now.

The paper submission deadline for the LLVM in HPC Workshop at SC17 has been
[extended](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116994.html)
to Sept 8th 2017.

Registration for the Women in Compilers and Tools Reception prior to the LLVM
Dev Meeting is [now
open](http://lists.llvm.org/pipermail/llvm-dev/2017-August/117014.html).

Kamil Rytarowski has summarised
[recent LLVM+NetBSD
work](http://blog.netbsd.org/tnf/entry/llvm_libfuzzer_and_safestack_ported).


## On the mailing lists

* Hal Finkel, Tobias Grosser, and Michael Kruse have shared an [update and RFC
on integrating Polly in to
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-September/117063.html).
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](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116898.html)
received useful, positive feedback. I intend to go ahead and trial this.
Thanks to Florian Hahn for
[demonstrating](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116957.html)
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](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055259.html).
Xin Wang worked on [the virtual call
checker](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055257.html).

* Krzysztof Parzyszek is [seeking
help](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116962.html) in
reviewing his patch for support for parameterisable register classes in
TableGen.

* Sean Eveson
[proposes](http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html)
adding support for recording function stack sizes, allowing changes to be
tracked between different compiler versions or through code changes.
Respondents
[suggested](http://lists.llvm.org/pipermail/llvm-dev/2017-September/117056.html)
either using debug info or optimisation remarks.

* Tony Jiang posted an RFC on [value range based optimisation
oppportunities](http://lists.llvm.org/pipermail/llvm-dev/2017-August/117038.html).

* Kostya Serebryany has been adding more LLVM fuzzing to the OSS-Fuzz project,
and sought feedback on [how to auto-report any bugs
found](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116978.html). Bugs
found [are now
public](http://lists.llvm.org/pipermail/llvm-dev/2017-August/117019.html) 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](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055246.html). 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](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116975.html).


## 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](http://reviews.llvm.org/rL311964).

* A new pass, MergeICmps has been introduced. This turns chains of integer
comparisons into memcmp and is disabled by default for now.
[r312315](http://reviews.llvm.org/rL312315).

* 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](http://reviews.llvm.org/rL311879).

* The scheduling model for the AMD Zen family has seen a large update.
[r312237](http://reviews.llvm.org/rL312237).

* 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](http://reviews.llvm.org/rL312043).

* A new handleExpected utility was added to LLVM's error handling library.
[r311870](http://reviews.llvm.org/rL311870).

* TableGen can now produced register info debug output using the
`--gen-register-info-debug-dump` flag.
[r311913](http://reviews.llvm.org/rL311913).

* The Machine copy propagation pass has been improved.
[r312328](http://reviews.llvm.org/rL312328).

* MC-layer support for Armv8.3-A complex number instructions has been added.
[r312228](http://reviews.llvm.org/rL312228).

* 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](http://reviews.llvm.org/rL312236).


## 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](http://reviews.llvm.org/rL311877).

* clang-format learned to indent preprocessor directives (depending on the
value of the IndentPPDirectives configuration option).
[r312125](http://reviews.llvm.org/rL312125).

* 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](http://reviews.llvm.org/rL312122).


## 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](http://reviews.llvm.org/rL312029).

* The LLVM OpenCL runtime gained implementations of the shuffle and shuffle2
builtins. [r312403](http://reviews.llvm.org/rL312403),
[r312404](http://reviews.llvm.org/rL312404).


More information about the llvm-dev mailing list