[llvm-dev] LLVM Weekly - #201, Nov 6th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 6 12:43:38 PST 2017


LLVM Weekly - #201, Nov 6th 2017
================================

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

Welcome to the two hundred and 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](https://www.linkedin.com/in/alex-bradbury/). 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

Videos from the 2017 LLVM Dev Meeting are now
[starting to appear](https://www.youtube.com/playlist?list=PL_R5A0lGi1ADRlI51k7qV9gw1N4DBNUUW).

Kamil Rytarowski has posted an update on
[LLDB and Sanitizer development for
NetBSD](http://blog.netbsd.org/tnf/entry/one_year_checkpoint_and_thread).


## On the mailing lists

* Zachary Turner [revived the discussion on requiring a C++14 or even C++17
compiler to build
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118673.html). Paul
Robinson [pointed
out](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118696.html) that
MSVC support is important to consider.

* Walter Lee shared an RFC on [patching ASan to support coarser shadow memory
granularity](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118679.html).

* Graham Yiu proposes [enabling the partial inliner by
default](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118752.html).

* Rafael Avila de Espindola started a discussion on [using LNT to track LLD
performance](http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20171030/498843.html).

* Crag Topper is
[proposing](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118734.html)
to add `-mprefer-avx256` and `-mprefer-axv512` flags to Clang. These limit the
vector register width used by LLVM, and might be used if you're concerned
about use of 512-bit operations resulting in CPU frequency reduction.

* Mandeep Singh Grang has been working to uncover and fix more sources of
non-determinism in LLVM and Clang. He has
[uncovered](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118639.html)
a list of failures caused by reliance on the unstable `std::sort` or
`array_pod_sort` and is looking for help in tracking down and fixing the
source of these failures.

* Zachary Turner is
[proposing](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118786.html)
to change the way the debuginfo-tests are run. Some responders to the thread
were concerned about the work created for maintainers of large continuous
integration setups.


## LLVM commits

* The MirCanonicalizerPass ('mir-canon') was committed. This will reorder
instructions and rename operands to reduce the diff when comparing two similar
programs. [r317285](https://reviews.llvm.org/rL317285).

* GlobalISel gained support for the emission of multi-instruction sequences.
[r317117](https://reviews.llvm.org/rL317117).

* The newly added CallSiteSplitting pass will try to split a call site in
order to provide tighter constraints on its arguments.
[r317351](https://reviews.llvm.org/rL317351).

* The class hierarchy for atomic and non-atomic memory intrinsics has been
modified. The commit message includes a script for renaming the changed
classes in downstream trees. [r316950](https://reviews.llvm.org/rL316950).

* The DWARF ASM printer now supports the `.cfi_restore` directive.
[r317199](https://reviews.llvm.org/rL317119).

* ExpandMemCmp is now a separate pass. This functionality previously lived in
CodeGenPrepare. [r317211](https://reviews.llvm.org/rL317211).

* llvm-dsymutil now has a man page.
[r317221](https://reviews.llvm.org/rL317221).

* TargetFrameLowering.h has been moved to include/llvm/CodeGen.
[r317379](http://reviews.llvm.org/rL317379).

* The range-based `llvm::for_each` has been introduced, wrapping
`std::for_each`. [r317356](https://reviews.llvm.org/rL317356).


## Clang commits

* clangd now has an internal performance tracking facility, producing output
compatible with Chrome's tracing visualiser.
[r317193](https://reviews.llvm.org/rL317193).

* The const-ness of the builtins matching math.h and complex.h functions has
been corrected.[r317265](https://reviews.llvm.org/rL317265).

* `-fdefault-calling-conv` can now be used to set regcall as the default
calling convention. [r317268](https://reviews.llvm.org/rL317268).


## Other project commits

* LLDB gained data formatters for libc++'s `forward_list`, `std::tuple`, and
`std::queue`. [r316992](https://reviews.llvm.org/rL316992),
[r317095](https://reviews.llvm.org/rL317095),
[r317099](https://reviews.llvm.org/rL317099).

* LLD can now report line numbers for duplicate declarations of data symbols.
[r317080](https://reviews.llvm.org/rL317080).


## 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](http://llvmweekly.org/reviewcorner) 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 one patch submission this week:

* "The current jump threading pass disregards branch hint information
associated with the branch it is optimizing. This patch makes the jump
threading pass propagate branch hints from the branch it is erasing."
[D31647](https://reviews.llvm.org/D31647), patch by Hiroshi Inoue.


More information about the llvm-dev mailing list