[llvm-dev] LLVM Weekly - #141, Sep 12th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 12 03:10:09 PDT 2016

LLVM Weekly - #141, Sep 12th 2016

If you prefer, you can read a HTML version of this email at

Welcome to the one hundred and forty-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](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.

As well as having the LLVM Cauldron last week, it was also an [eventful
weekend](https://twitter.com/MissPhilbin/status/774985421914796033) so please
accept my apologies if I've missed anything important in this issue!

## News and articles from around the web

Last Thursday we successfully held the inaugural [LLVM
Cauldron](http://llvm.org/devmtg/2016-09/) in Hebden Bridge. I'd like to thank
all the speakers, attendees, sponsors, and helpers who made the event such a
success. Simon Cook from Embecosm very kindly recorded all the talks and has
managed a crazy-fast turnaround time to get them all edited and uploaded ready
for you to view. See [the video playlist
Simon's been so fast I haven't even collected PDFs of the slides from all the
speakers yet, but you can expect to find them linked to on the [LLVM Cauldron
page](http://llvm.org/devmtg/2016-09/#schedule) in the next day or two.

Neil Henning has written up [part two of his series on compiling a toy
language using
This post explains key concepts such as LLVM Values and Types, symbol tables,
and type tables.

[NLVM](https://github.com/arnetheduck/nlvm), a new LLVM-based compiler for the
[Nim programming language](http://nim-lang.org/) has been
Currently it passes 90% of the upstream Nim test cases.

## On the mailing lists

* The events of September 4th 2016 will be passed down through the generations
of LLVM developers as the day the bots got lazy (or at least, the [day we
A configuration change to Zorg introduced a bug which made all builds rebuild
from the same revision, without including the latest changes. This did cause
when the configuration was fixed and new failures surfaced. The good news is
the CIncident is now over and life can resume as normal.

* MSVC2013 has had a stay of execution, the plan is now to [retire support for
it until 15th

* Tom Stellard is managing the upcoming 3.9.1 stable release and has requested
that [requests for merges now go through bugzilla rather than the mailing
list](http://lists.llvm.org/pipermail/llvm-dev/2016-September/104587.html). As
he explains, this workflow makes things much easier for him to keep track of.

* Ever wondered what the difference is between LLVM's libunwind and 'nongnu'
libunwind? David Chisnall [has the

* Daniel Cederman is a software engineer at Cobham Gaisler working on
toolchain support for LEON3/LEON4 (which implement SPARC). He has shared an
[RFC on adding support for REX, their new 16-bit dense instruction
These shorter instructions overlap with the 32-bit encoding space, so require
instructions to enter and exit REX mode.

## LLVM commits

* In GlobalISel, type information is now stored in MachineRegisterInfo rather
than in every MachineInstr. [r281035](http://reviews.llvm.org/rL281035).

* LLVM's OCaml bindings can now be built out-of-tree.

* The C++ Itanium demangler from libcxxabi has been imported in to LLVM.

* A new field has been added to the Instruction TableGen class. AsmVariantName
is used to indicate instructions that are only available in specific assembler
variants. [r280952](http://reviews.llvm.org/rL280952).

## Clang commits

* Work has started to support export declarations as specified in the C++
Modules TS. [r280999](http://reviews.llvm.org/rL280999).

* A Visual Studio extension for clang-tidy has been added to the
clang-tools-extra repository. For now it only supports graphically configuring
clang-tidy settings. [r280840](http://reviews.llvm.org/rL280840).

* The Microsoft pragma intrinsic extension (used to tell the compiler to use a
builtin version of the function) is now supported, though is somewhat
redundant in Clang as it will already use a builtin version of a function when
possible by default. [r280825](http://reviews.llvm.org/rL280825).

## Other project commits

* A new mechanism to improve crash info has landed in LLDB. Disassembly will
be parsed in order to try to reconstruct the sequence of dereferences and
offsets that were applied to a known variable to obtain an invalid pointer. It
is exposed through a 'frame diagnose' command.

* In a monster commit, LLDB has been completely reformatted to conform to
clang-format's LLVM style. Python files have also been reformatted using
autopep8. [r280751](http://reviews.llvm.org/rL280751).

* Support for EfficiencySanitizer on MIPS64 has been added (with a few tests
still be fixed). [r280795](http://reviews.llvm.org/rL280795).

* LLDB has gained support for Intel's Memory Protection eXtensions (MPX).
Specifically, it can now access the MPX registers.

* libc++ can now be built against an external threading library other than
pthreads. [r281179](http://reviews.llvm.org/rL281179).

More information about the llvm-dev mailing list