[llvm-dev] LLVM Weekly - #114, Mar 7th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 7 04:37:54 PST 2016


LLVM Weekly - #114, Mar 7th 2016
================================

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

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

LLVM has been
[accepted](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096138.html)
as a mentoring organisation in Google Summer of Code 2016. See
[here](https://summerofcode.withgoogle.com/how-it-works/) for more about what
that means. If you're a student who would like to get paid to work on LLVM
over the summer, you should definitely consider applying. Also take a look at
the full list of [organisations in GSoC
2016](https://summerofcode.withgoogle.com/organizations/). If you have an
interest in open source hardware, in my (biased) opinion you should definitely
look at [lowRISC's listed project
ideas](http://www.lowrisc.org/docs/gsoc-2016-ideas/).

LLVM and Clang 3.8 'final' [has been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096319.html). A
release should be imminent.

There was a big C++ committee meeting last week. You can find summaries
[here](https://www.reddit.com/r/cpp/comments/48zp05/what_we_added_to_the_c17_working_draft/)
and
[here](http://usingstdcpp.org/2016/03/05/trip-report-c-meeting-at-jacksonville/).
If you were hoping for modules, concepts, UFCS, ranges, or coroutines in C++17
I'm afraid you're in for disappointment. Many new features will be available
in C++ Technical Specifications though.

llvmlite 0.9.0 has been
[released](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096199.html).
llvmlite is a light-weight Python binding for LLVM. If you're wondering how to
get started with llvmlite, then check out this recent blog post from Ian
Bertolacci on
[writing fibonacci in LLVM with
llvmlite](https://ian-bertolacci.github.io/llvm/llvmlite/python/compilers/programming/2016/03/06/LLVMLite_fibonacci.html).

Andi McClure has written a really interesting blog post about [writing
software without a compiler](http://msm.runhello.com/p/1003). In this case,
generating LLVM IR from LuaJIT.


## On the mailing lists

* John McCall has posted an RFC on [implementing the Swift calling convention
in LLVM and
Clang](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096250.html).
Feedback is generally positive and there's an interesting discussion on the
handling of Swift's errors in the calling convention.

* Roel Jordans has [posted some thoughts and questions in preparation for the
EuroLLVM birds of a feather sessions on compilers in
education](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096205.html).

* Peter Collingbourne has shared a new RFC on [adding a new ABI for virtual
calls](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096146.html),
termed the 'relative ABI'. He'd also like to change how virtual calls are
represented in the IR.

* Grigori Fursin from Dividiti [shared some recent work on crowdtuning
compiler optimisation
heuristics](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096370.html).

* [What is the current status of garbage collection with statepoints in
LLVM?](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096351.html).
[Philip
Reames](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096360.html) and
[Sanjoy Das](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096361.html)
have the answer!

* Xinmin Tian has shared a [proposal for function vectorisation and loop
vectorisation with function
calls](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096291.html).

* Akira Hatanaka is interested in comments to his [RFC on more precise
lifetime.end
metadata](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096233.html). In
the given example, three local variables have non-overlapping lifetimes and
could potentially use the same stack slot, but this isn't currently done.


## LLVM commits

* MemorySSA has gained an initial update API.
[r262362](http://reviews.llvm.org/rL262362).

* TableGen can now check at compile time that a scheduling model is complete.
[r262384](http://reviews.llvm.org/rL262384).

* New comments in PassBuilder give a description of what trade-offs are
expected for each optimisation level.
[r262196](http://reviews.llvm.org/rL262196).

* LoopLoadElimination is now enabled by default.
[r262250](http://reviews.llvm.org/rL262250).

* A new patch adding infrastructure for profile-guided optimisation
enhancements in the inline has landed.
[r262636](http://reviews.llvm.org/rL262636).

* Experimental ValueTracking code which tried to infer more precise known bits
using implied dominating conditions has been removed. Experiments didn't find
it to be profitable enough, but it may still be useful to people wanting to
experiment out of tree. [r262646](http://reviews.llvm.org/rL262646).


## Clang commits

* Clang's C API gained an option to demote fatal errors to non-fatal errors.
This is likely to be useful for clients like IDEs.
[r262318](http://reviews.llvm.org/rL262318).

* clang-cl gained initial support for precompiled headers.
[r262420](http://reviews.llvm.org/rL262420).

* An `-fembed-bitcode` driver option has been introduced.
[r262282](http://reviews.llvm.org/rL262282).

* Semantic analysis for the swiftcall calling convention has landed.
[r262587](http://reviews.llvm.org/rL262587).

* Clang's TargetInfo will now store an actual DataLayout instance rather than
a string. [r262737](http://reviews.llvm.org/rL262737).


## Other project commits

* LLDB can now read line tables from Microsoft's PDB debug info files.
[r262528](http://reviews.llvm.org/rL262528).

* The LLVM test-suite gained the ability to hash generated binaries and to
skip tests if the hash didn't change since a previous run.
[r262307](http://reviews.llvm.org/rL262307).

* LLVM's OpenMP runtime now supports the new OpenMP 4.5 doacross loop nest and
taskloop features. [r262532](http://reviews.llvm.org/rL262532),
[r262535](http://reviews.llvm.org/rL262535).


More information about the llvm-dev mailing list