[llvm-dev] LLVM Weekly - #154, Dec 12th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Dec 12 03:14:11 PST 2016


LLVM Weekly - #154, Dec 12th 2016
=================================

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

Welcome to the one hundred and fifty-fourth 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

Saman Barghi has written a blog post about [generating a C interface to C++
code using Clang's
LibTooling](http://samanbarghi.com/blog/2016/12/06/generate-c-interface-from-c-source-code-using-clang-libtooling/).

[Psyche-c](http://cuda.dcc.ufmg.br/psyche-c/) is an interesting project,
providing a compiler for incomplete C code. It includes a Hindley-Milner type
inference engine to reconstruct missing type information.

Slides are [now available](https://llvm-hpc3-workshop.github.io/) from the
LLVM in HPC workshop at SC16.

Phoronix have produced an updated [performance
comparison](http://www.phoronix.com/scan.php?page=article&item=gcc7-clang4-december&num=1)
for code generated by LLVM and by GCC.


## On the mailing lists

* Rui Ueyama has posted an [LLD status update and performance
chart](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107981.html).
This gives an overview of the progress made on LLD over the past year, which
by any measure is impressive.

* Hans Wennborg has [proposed the LLVM/Clang 4.0 release
schedule](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107805.html)
and put out a call for volunteer testers.

* Nuno Lopes has returned to the discussion on 'killing undef and spreading
poison' and now [has an
answer](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107840.html) to
one of the major questions raised. Namely, whether poison could be bitwise
rather than value-wise.

* Pavel Labath
[proposes](http://lists.llvm.org/pipermail/lldb-dev/2016-December/011698.html)
a new logging mechanism for LLDB. He later [followed
up](http://lists.llvm.org/pipermail/lldb-dev/2016-December/011730.html) wit h
some proposed changes based on the discussion.

* David Blaikie raises an issue with [accurate debug locations for
ASAN](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107847.html) and
friends. Recent patches intended to improve debug experience may degrade the
experience for the sanitizers. [Is it a design
flaw](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107854.html) to
have sanitizers rely on accurate debug information, which by its nature is
best-effort? Kostya Serebryany [points
out](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107885.html) that
correctness of debug info isn't a hard requirement, but it does affect the
readability of reports to users.

* Reid Kleckner started and RFC on [an IR change to allow creating allocas
from function
parameters](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107918.html).
The motivation is to improve performance, including in O0 builds. Philip
Reames [has
doubts](http://lists.llvm.org/pipermail/llvm-dev/2016-December/107951.html)
about the motivation for the change.


## LLVM commits

* The logic in FileCheck for finding check prefixes in the input file has been
reimplemented to be more efficient.
[r289382](http://reviews.llvm.org/rL289382).

* `!absolute_symbol` metadata was introduced and is used by the X86 backend.
[r289087](http://reviews.llvm.org/rL285806).

* The lit testing tool now supports custom parsers, which can be used to
recognise new keywords beyond RUN, REQUIRES etc.
[r288694](http://reviews.llvm.org/rL288694).

* The performance of LowerTypeTests was improved. This reduces the pass
runtime on a module containing Chrome's vtables from over 60s to 0.9s.
[r288859](http://reviews.llvm.org/rL288859).

* MachineIRBuilder (part of the in-development GlobalISel infrastructure) has
had its interface reworks so it acts much more like IRBuilder, allowing you to
insert an instruction before the passed instruction.
[r288980](http://reviews.llvm.org/rL288980).

* A DWARF generator was added to enable the unit testing of DWARF APIs with
gtest. [r289010](http://reviews.llvm.org/rL289010).

* The SelectionDAG learned to expand `[US]MUL_LOHI`. Previously, setting it to
expand would just prevent the node from being generated.
[r289050](http://reviews.llvm.org/rL289050).

* Tests written in .mir should go in test/CodeGen/YourTarget rather than
test/CodeGen/MIR (that folder just contains tests for the MIR infrastructure).
[r289254](http://reviews.llvm.org/rL289254).
* The verifier learned to check TBAA metadata.
[r289402](http://reviews.llvm.org/rL289402).


## Clang commits

* Clang gained support for non-zero null pointers in C and OpenCL, which is
needed for the amdgcn target. [r289252](http://reviews.llvm.org/rL289252).

* As a step towards moving support for Objective-C garbage collection from
Clang, `-fobj-gc*` command line options have been removed.
[r288872](http://reviews.llvm.org/rL288872).

* `-Wstrict-prototypes` has been implemented.
[r288896](http://reviews.llvm.org/rL288896).


## Other project commits

* The beginnings of 'CTMark' (a test/benchmark of compile time) has been added
fo the llvm test suite. [r289269](http://reviews.llvm.org/rL289269).

* A Thumb1 implementation for uidiv, uidivmod, idivsi3 and `aeabi_idivmod`
were added to compiler-rt's builtins.
[r288710](http://reviews.llvm.org/rL288710),
[r288960](http://reviews.llvm.org/rL288960).

* The XRay buffer queue, needed for 'Flight Data Recorder' mode was added.
This provides a queue of fixed-sized buffers to hold XRay records.
[r288775](http://reviews.llvm.org/rL288775).

* The libc++ test infrastructure was updated to support modules. This makes
use of the recently added custom parser functionality in lit.
[r288728](http://reviews.llvm.org/rL288728).

* The ELF linker symbol table design has been ported to the COFF linker in
LLD. [r289280](http://reviews.llvm.org/rL289280).


More information about the llvm-dev mailing list