[LLVMdev] LLVM Weekly - #68, Apr 20th 2015
Alex Bradbury
asb at asbradbury.org
Tue Apr 21 01:51:30 PDT 2015
[Apologies, I forgot to send to the list yesterday]
LLVM Weekly - #68, Apr 20th 2015
===============================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/68>.
Welcome to the sixty-eighth 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
Last week was of course [EuroLLVM](http://llvm.org/devmtg/2015-04/). It was
good to put faces to names for a number of you, or to meet people I've only
communicated with over twitter. Slides and videos should be forthcoming, but
in the meantime you can read the [liveblog](http://llvmweekly.org/issue/67) I
maintained for the talks I was able to attend. A big thank you to the
organisers and all those who presented.
The highest profile news for some time in the LLVM community is that
[Microsoft are working on an LLVM-based compiler for .NET
CoreCLR](http://blog.llvm.org/2015/04/llilc-llvm-based-compiler-for-dotnet.html).
What's more, LLILC (pronounced 'lilac') is open source, and they hope to
contribute their LLVM changes upstream.
The [Cerberus team](http://www.cl.cam.ac.uk/~pes20/cerberus/) are trying to
find an answer to the question '[What is C in
practice?](http://tinyurl.com/csurvey2), and you can help by filling out their
survey.
Honza Hubička has posted a fantastic overview of the [improvements to
link-time and inter-procedural optimisations in
GCC5](http://hubicka.blogspot.it/2015/04/GCC5-IPA-LTO-news.html), featuring
figures from Firefox builds. It seems like impressive improvements have been
made.
Simon Cook has written a blog post about [using TableGen outside of
LLVM](http://www.embecosm.com/2015/04/14/utilizing-tablegen-for-non-compiling-processes/),
specifically for things like parameterisable SSH configs. Crazy? Genius? Why
not both?
## On the mailing lists
* Duncan P. N. Exon Smith has proposed an [RFC for metadata attachments to
function
definitions](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84555/).
There's some concern about the effect this would have on the size of Function.
* Ivan Baev is proposing an [indirect call promotion LLVM
pass](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84678). This
mailing list post gives design notes on the implementation and outlines the
shortcomings of the current version of the patch.
* Tom Stellard queries the [difference between Latency and ResourceCycles in
MISched](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84553). Andy
Trick gives a [very handy
answer](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84574).
* Paul Robinson is seeking feedback on [adding a 'debugger
target'](http://article.gmane.org/gmane.comp.compilers.clang.devel/42233),
arguing that currently the target platform is used to infer the desired
debugger (and thus make choices on e.g. accelerator tables), but of course the
choice of debugger doesn't necessarily follow from the platform.
* Colin LeMahieu is looking to contribute an assembler for the Hexagon DSP,
but has [questions about how its funky grammar should be
handled](http://article.gmane.org/gmane.comp.compilers.llvm.devel/84541).
## LLVM commits
* The `dereferenceable_or_null` attribute has been born. As described in the
commit message, the motivation is for managed languages such as Java.
[r235132](http://reviews.llvm.org/rL235132).
* A new layer was added to the Orc JIT API for applying arbitrary transforms
to IR. [r234805](http://reviews.llvm.org/rL234805).
* Memory intrinsics can now be tail calls.
[r234764](http://reviews.llvm.org/rL234764).
* A handy Python script has been added for generating C programs that have a
control flow graph which is a ladder graph. The intent is to use it to test
whether an algorithm expected to be linear time on the CFG really is.
[r234917](http://reviews.llvm.org/rL234917).
* The code for lowering switches and extracting jump tables has been
rewritten, and should produce better results now.
[r235101](http://reviews.llvm.org/rL235101).
* Call can now take an explicit type parameter.
[r235145](http://reviews.llvm.org/rL235145).
## Clang commits
* Clang learned `-Wrange-loop-analysis`, which will warn when a range-based
for loop makes copies of elements in the range.
[r234804](http://reviews.llvm.org/rL234804).
* The `preserve-bc-uselistorder` option is no longer true by default, but
Clang will set it for `-emit-llvm` or `-save-temps`.
[r234920](http://reviews.llvm.org/rL234920).
* LLVM has had a lot of changes to the debug API in the last week. This commit
updates Clang for them. [r235112](http://reviews.llvm.org/rL235112).
## Other project commits
* Reducing the amount of template use in LLD has reduced the size of
AArch64TargetHandler.cpp.o to 4.1MB, down from 21MB.
[r234808](http://reviews.llvm.org/rL234808),
[r234931](http://reviews.llvm.org/rL234931).
* A large patchset has landed in lldb which adds a big chunk of the work
necessary for supporting lldb on ARM.
[r234870](http://reviews.llvm.org/rL234870).
More information about the llvm-dev
mailing list