[llvm-dev] LLVM Weekly - #109, Feb 1st 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 1 03:59:11 PST 2016


LLVM Weekly - #109, Feb 1st 2016
================================

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

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

The GNU Tools Cauldron 2016 has been
[announced](https://gcc.gnu.org/ml/gcc/2015-12/msg00160.html) for the 9th-11th
of September 2016, in Hebden Bridge, UK.

The Sulong project has been
[announced](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094713.html).
It is an LLVM IR interpreter using the Truffle framework and Graal on the JVM
to support JIT compilation.

Ehsan Akhgari has posted an [updated on building Firefox with
clang-cl](https://ehsanakhgari.org/blog/2016-01-29/building-firefox-with-clang-cl-a-status-update).
It is now possible to build a complete Firefox with Clang without using the
MSVC fallback once.

I've mentioned it down below in the list of notable commits, but it's worth
calling out here too: the old autoconf build-system has now been
[removed](http://reviews.llvm.org/rL258861) from LLVM. 3.8 will be the last
release to include it. Time to switch to CMake if you haven't already.

John Regehr gave a talk about undefined behaviour in LLVM at the Paris LLVM
meetup, and you can find the slides
[here](http://www.cs.utah.edu/~regehr/llvm-ub.pdf).


## On the mailing lists

* James Knight has written to the list to get feedback on [approaches to
cleaning up Clang's handling of
atomics](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094576.html).
There seems to be widespread support for the cleanup. James followed up again
to [slightly revise his
plan](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094702.html).

* Matt Arsenault proposes that [all libcalls be canonicalized to
intrinsics](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094593.html).
All responses so far are in favour.

* Ke Bai has shared a proposal on [representing multiple memory scopes in LLVM
IR](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094593.html). There
hasn't been any feedback yet.

* Dmitree Kuvaiskii asks if anyone has implemented [a pass utilizing Intel's
new MPX memory
protection](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094620.html).
The answer appears to be no, and in addition
[David](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094627.html) and
[Kostya](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094638.html)
are sceptical about how worthwhile it would be.

* Peter Collingbourne has proposed a new optimisation, [virtual constant
propagation](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094600.html).
The original motivation was to reduce the overhead added by enabling
control-flow integrity in certain Chromium benchmarks. Constants will be
devirtualized at LTO time.


## LLVM commits

* The autoconf build system for LLVM has been removed.
[r258861](http://reviews.llvm.org/rL258861).

* The WebAssembly backend gained support for unaligned loads and stores.
[r258779](http://reviews.llvm.org/rL258779).

* LLVM's MCAsmSreamer will now always use .p2align rather than .align, because
.align's behaviour can differ between targets.
[r258750](http://reviews.llvm.org/rL258750).

* Intrinsic IDs are now looked up by binary search rather than the previous
more complex mechanism. This improves the compile time of Function.cpp.
[r258774](http://reviews.llvm.org/rL258774).

* TargetSelectionDAGInfo has been renamed to SelectionDAGTargetInfo and now
lives in CodeGen rather than Target.
[r258939](http://reviews.llvm.org/rL258939).

* A LoopSimplifyCFG pass was added to canonicalise loops before running
through passes such as LoopRotate and LoopUnroll.
[r259256](http://reviews.llvm.org/rL259256).


## Clang commits

* The clang-cl driver will now warn for unknown arguments rather than
erroring, to match the behaviour of MSVC.
[r258720](http://reviews.llvm.org/rL258720).

* The old autoconf build system was removed from Clang.
[r258862](http://reviews.llvm.org/rL258862).

* The 'sancov' (SanitizerCoverage) tool gained some documentation.
[r259000](http://reviews.llvm.org/rL259000).


## Other project commits

* libcxx gained an implementation of `ostream_joiner`.
[r259014](http://reviews.llvm.org/rL259014),
[r259015](http://reviews.llvm.org/rL259015).

* lld gained a new error function which won't cause process exit. The hope is
this can be used to provide a gradual path towards lld-as-a-library.
[r259069](http://reviews.llvm.org/rL259069).

* The lit runner for the LLVM test suite can now be passed
`--param=profile=perf` which will cause each test to be run under `perf
record`. [r259051](http://reviews.llvm.org/rL259051).


More information about the llvm-dev mailing list