[llvm-dev] LLVM Weekly - #119, Apr 11th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 11 06:01:24 PDT 2016


LLVM Weekly - #119, Apr 11th 2016
=================================

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

Welcome to the one hundred and nineteenth 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 the slides from the [recent EuroLLVM 2016 Developers'
Meeting](http://llvm.org/devmtg/2016-03/) made it online. This week this has
been followed by
[videos of the talks from the
conference](https://www.youtube.com/playlist?list=PL_R5A0lGi1ADuZKWUJOVOgXr2dRW06e55).

John Regehr has written about [efficient integer overflow checking in
LLVM](http://blog.regehr.org/archives/1384), looking at cases where LLVM can
and cannot remove unnecessary overflow checks, and how this might be improved.

Version 0.13 of Pocl, the portable OpenCL implementation [has been
released](http://lists.llvm.org/pipermail/llvm-dev/2016-April/097953.html).
This release works with LLVM/Clang 3.8 and 3.7, and adds initial OpenCL 2.0
support and improved HSA support.

Serge Guelton at QuarksLab has written up a really useful guide to
[implementing a custom directive handler in
Clang](http://blog.quarkslab.com/implementing-a-custom-directive-handler-in-clang.html).

Microsoft's Visual C++ team are [looking for feedback on
Clang/C2](https://blogs.msdn.microsoft.com/vcblog/2016/04/06/clangc2-we-need-your-advice/)
(Clang with Microsoft CodeGen).


## On the mailing lists

* James Molloy has posted an RFC on adding support for [constant folding calls
to math.h functions on long
doubles](http://lists.llvm.org/pipermail/llvm-dev/2016-April/097936.html).
Currently these functions aren't constant-folded as the internal APFloat class
doesn't implement them and long double operations aren't portable. Solutions
include adding support to APFloat, linking against libMPFR to provide
compile-time evaluation, or recognising when the long double format of the
host and target are the same, so the host math library can be called. From the
responses so far, there seems to be some push-back on adding the libMPFR
dependency.

* Sanjoy Das has an RFC on [adding a patchable-prologue
attribute](http://lists.llvm.org/pipermail/llvm-dev/2016-April/098034.html).
This would be used to indicate that the function's prologue is compiled so as
to provide support for easy hot-patching.

* Ulrich Weigand has shared a patch for [supporting LLDB on Linux on
SystemZ](http://lists.llvm.org/pipermail/lldb-dev/2016-April/010067.html). The
patchset contains many big-endian fixes, and may be of interest to others
looking at porting LLDB.


## LLVM commits

* The Swift calling convention as well as support for the 'swifterror'
argument has been added.
[r265433](http://reviews.llvm.org/rL265433),
[r265480](http://reviews.llvm.org/rL265480).

* Work on GlobalISel continues with many commits related to the assignment of
virtual registers to register banks.
[r265445](http://reviews.llvm.org/rL265445),
[r265440](http://reviews.llvm.org/rL265440).

* LLVM will no longer perform inter-procedural optimisation over functions
that can be "de-refined". [r265762](http://reviews.llvm.org/rL265762).

* The substitutions supported by lit are now documented.
[r265314](http://reviews.llvm.org/rL265314).

* Unrolled loops now execute the remainder in an epilogue rather than the
prologue. This should produce slightly improved code.
[r265388](http://reviews.llvm.org/rL265388).


## Clang commits

* Clang gained necessary support for the Swift calling convention.
[r265324](http://reviews.llvm.org/rL265324).

* New flags `-fno-jump-tables` and `-fjump-tables` can be used to
disable/enable support for jump tables when lowering switch statements.
[r265425](http://reviews.llvm.org/rL265425).

* TargetOptions is now passed through all the TargetInfo constructors. This
will allow target information to be modified based on the ABI selected.
[r265640](http://reviews.llvm.org/rL265640).

* A large number of intrinsics from emmintrin.h now have Doxygen docs.
[r265844](http://reviews.llvm.org/rL265844).


## Other project commits

* clang-tidy gained a new check to flag initializers of globals that access
extern objects, leading to potential order-of-initialization issues.
[r265774](http://reviews.llvm.org/rL265774).

* LLD's ELF linker gained new options `--start-lib`, `--end-lib`,
`--no-gnu-unique`, `--strip-debug`.
[r265710](http://reviews.llvm.org/rL265710),
[r265717](http://reviews.llvm.org/rL265717),
[r265722](http://reviews.llvm.org/rL265722).


More information about the llvm-dev mailing list