[llvm-dev] LLVM Weekly - #211, Jan 15th 2018

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 15 13:37:00 PST 2018


LLVM Weekly - #211, Jan 15th 2018
=================================

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

Welcome to the two hundred and eleventh 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

A new post from Zachary Turner on the official LLVM blog describes recent work
to [improve link times on Windows with clang-cl and
lld](http://blog.llvm.org/2018/01/improving-link-time-on-windows-with.html).


## On the mailing lists

* Marshall Clow has sent out a [heads
up](http://lists.llvm.org/pipermail/llvm-dev/2018-January/120251.html) that a
number of components in std::experimental in libc++ are due to be removed on
the 1st of February. These components (such as std::experimental::any) all
have equivalents in std::. See the
[libcxx TS deprecation page](http://libcxx.llvm.org/TS_deprecation.html) for
more info.

* John McCall has posted an RFC on [adding a new function
attribute](http://lists.llvm.org/pipermail/llvm-dev/2018-January/120323.html).
`synthetic(<string>)` would prevent LLVM from propagating information about
the body outside of the function, such as by changing attributes. The
motivation is to enable some of the work John is doing in prototyping
coroutine support for Swift.

* Steve O'Brien created an RFC on [correcting string handling in
CXString](http://lists.llvm.org/pipermail/cfe-dev/2018-January/056573.html).
It currently peeks past the end of the string allocation to try to determine
if the StringRef it was given is a NUL-terminated string.

* Discussion has
[resumed](http://lists.llvm.org/pipermail/cfe-dev/2018-January/056526.html)
on supporting the `FENV_ACCESS` pragma.

## LLVM commits

* Support was added for X86 Indirect Branch Tracking.
[r322062](http://reviews.llvm.org/rL322602).

* A number of additional RISC-V codegen patches have now landed. Notably
support for varargs, branch analysis, and branch relaxation.
[r322215](http://reviews.llvm.org/rL322215),
[r322222](http://reviews.llvm.org/rL322222),
[r322224](http://reviews.llvm.org/rL322224).

* -debug output will no longer print register classes alongside every
instruction. [r322086](http://reviews.llvm.org/rL322086).

* Lit's builtin diff command now supports `-r`, meaning recursive diffs can
safely be used in tests on Windows.
[r322102](http://reviews.llvm.org/rL322102).

* A new pass has been introduced to generate 'synthetic function entry
counts'. This is a heuristic used to influence inlining.
[r322110](http://reviews.llvm.org/rL322110).

* An initial stack instrumentation pass has been implemented for HWASan.
[r322324](http://reviews.llvm.org/rL322324).


## Clang commits

* The target attribute can now be used for function multiversioning as in GCC.
This allows multiple versions of a function to be generated, with each version
specialised for a target feature (e.g. neon, avx).
[r322028](http://reviews.llvm.org/rL322028),
[r322043](http://reviews.llvm.org/rL322043).

* New documentation has been added summarising the current status of OpenMP
4.5 support in Clang. [r322018](http://reviews.llvm.org/rL322018).

* Initial RISC-V target definition and compiler driver has been added. ABI
lowering will land upstream shortly too.
[r322276](http://reviews.llvm.org/rL322276).

* A new target-independent control flow protection flag '-fcf-protection' has
been added. This requests that the backend instruments control flow.
[r322063](http://reviews.llvm.org/rL322063).


## Other project commits

* LLD's relocation processing has been rewritten and refactored.
[r322047](http://reviews.llvm.org/rL322047).

* libFuzzer now supports FreeBSD. [r322380](http://reviews.llvm.org/rL322380).

* LLDB gained a new class for handling process environments.
[r322174](http://reviews.llvm.org/rL322174).


## 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.

Thank you to Jonathan Coe for reviewing the patch featured last week.


More information about the llvm-dev mailing list