[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

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

## On the mailing lists

* James Knight has written to the list to get feedback on [approaches to
cleaning up Clang's handling of
There seems to be widespread support for the cleanup. James followed up again
to [slightly revise his

* Matt Arsenault proposes that [all libcalls be canonicalized to
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
The answer appears to be no, and in addition
[David](http://lists.llvm.org/pipermail/llvm-dev/2016-January/094627.html) and
are sceptical about how worthwhile it would be.

* Peter Collingbourne has proposed a new optimisation, [virtual constant
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.

* The WebAssembly backend gained support for unaligned loads and stores.

* LLVM's MCAsmSreamer will now always use .p2align rather than .align, because
.align's behaviour can differ between targets.

* Intrinsic IDs are now looked up by binary search rather than the previous
more complex mechanism. This improves the compile time of Function.cpp.

* TargetSelectionDAGInfo has been renamed to SelectionDAGTargetInfo and now
lives in CodeGen rather than Target.

* A LoopSimplifyCFG pass was added to canonicalise loops before running
through passes such as LoopRotate and LoopUnroll.

## Clang commits

* The clang-cl driver will now warn for unknown arguments rather than
erroring, to match the behaviour of MSVC.

* The old autoconf build system was removed from Clang.

* The 'sancov' (SanitizerCoverage) tool gained some documentation.

## Other project commits

* libcxx gained an implementation of `ostream_joiner`.

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

* 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