[LLVMdev] LLVM Weekly - #27, Jul 7th 2014

Alex Bradbury asb at asbradbury.org
Mon Jul 7 07:32:12 PDT 2014


LLVM Weekly - #27, Jul 7th 2014
===============================

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

Welcome to the twenty-seventh 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

An LLVM code generator has been
[merged](https://github.com/MLton/mlton/commit/bf36a151a4b0cc366ba32b5ebea5d8ce25239a0b)
into the MLton whole-program optimizing compiler for Standard ML. This was
written by Brian Leibig as part of his
[Master's thesis](http://www.cs.rit.edu/~mtf/student-resources/20124_leibig_msproject.pdf),
which contains more information on its performance and design.

Eli Bendersky has [written a
tool](http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-July/037782.html) which
converts the output of Clang's `-ast-dump` to HTML. See
[here](https://dl.dropboxusercontent.com/u/15602400/template-insts-dump.html)
for an example. The code is [available on
Github](https://github.com/eliben/llvm-clang-samples/blob/master/tools/htmlize-ast-dump.py).

Clang's Microsoft Visual C++ [compatibility
page](http://clang.llvm.org/docs/MSVCCompatibility.html) has been updated to
reflect the status of the current SVN trunk. As can be seen from the [relevant
diff](http://reviews.llvm.org/rL212193), record layout has been marked
complete along with RTTI. Lambdas are now marked mostly complete.


## On the mailing lists

* Edwin Amsler is [interested in producing an LLVM backend for the 6502
processor](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074472.html).
He later starts a thread asking for [advice on targeting a CPU with no general
purpos
registers](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074523.html).
David Given
[suggests](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074530.html)
it might be worth viewing the 6502 as a machine with 256 byte-sized registers.

* Pavel Chupin has written to the list on behalf of Intel to get feedback on
[upstreaming support for the x32
ABI](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074451.html). As you
might expect, people are in favour of the idea. The NativeClient team are
[also
interested](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074457.html),
particularly as NaCl's x86-64 ABI is fairly similar to x32.

* Sunil Srivastava has shared a [proposal for an ABI test suite for
Clang](http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-July/037812.html).
There is wide support for Sony submitting the implementation for code review.
A later response clarifies that of the 400 test files, about 20% are
hand-written and the rest come from the test case generator.

* In a thread about using the Clang API to extract information about the
memory layout of structs, Reid Kleckner [points to the handy
-fdump-record-layouts
flag](http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-July/037778.html).

* There's a massive thread on [the usability of Phabricator review threads for
non-Phabricator
users](http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074408.html).
There seem to be some issues with email reviews showing up on Phabricator and
possibly vice-versa. There's more than I have time to summarize, so those
interested are advised to read the thread.


## LLVM commits

* The X86 backend now expands atomics in IR instead of as MachineInstrs. Doing
the expansions at the IR level results in shorter code and potentially there
may be benefit from other IR passes being able to run on the expanded atomics.
[r212119](http://reviews.llvm.org/rL212119).

* The ARM backend learned the ISB memory barrier intrinsic.
[r212276](http://reviews.llvm.org/rL212276).

* The X86 backend gained support for `__builtin_ia32_rdpmc` which is used to
read performance monitoring counters.
[r212049](http://reviews.llvm.org/rL212049).

* The peephole optimizer gained new code (currently disabled) to rewrite
copies to avoid copies across register banks.
[r212100](http://reviews.llvm.org/rL212100).

* Control flow graph building code has been moved from MC to a new MCAnalysis
library. [r212209](http://reviews.llvm.org/rL212209).

* TableGen gained support for MSBuiltin, which allows for adding intrinsics
for Microsoft compatibility. [r212350](http://reviews.llvm.org/rL212350).


## Clang commits

* MSVC RTTI (run-time type information) implementation has been completed.
[r212125](http://reviews.llvm.org/rL212125).

* The `__builin_arm_ldaex` and `__builtin_arm_stlex` intrinsics were added.
[r212175](http://reviews.llvm.org/rL212175).

* Nested blocks are now supported in Microsoft inline assembly.
[r212389](http://reviews.llvm.org/rL212389).


## Other project commits

* lldb-gdbserver support has been merged for Linux x86-64.
[r212069](http://reviews.llvm.org/rL212069).

* AddressSanitizer gained support for i686-linux-android.
[r212273](http://reviews.llvm.org/rL212273).

* libcxxabi gained a CMake build system.
[r212286](http://reviews.llvm.org/rL212286).

* lld now supports parsing of x86 and ARM/Thumb relocations for MachO.
[r212239](http://reviews.llvm.org/rL212239),
[r212306](http://reviews.llvm.org/rL212306).



More information about the llvm-dev mailing list