[LLVMdev] LLVM Weekly - #24, Jun 16th 2014

Alex Bradbury asb at asbradbury.org
Mon Jun 16 04:51:59 PDT 2014


LLVM Weekly - #24, Jun 16th 2014
================================

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

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

* Philip Reames has written another blog post about the support for precise
relocating GC he has been working on with his colleagues. In this post, he
[describes the IR restrictions for late safepoint
placement](http://www.philipreames.com/Blog/2014/06/12/ir-restrictions-for-late-safepoint-placement/).

* Videos from this year's EuroLLVM conference are [now
available](http://llvm.org/devmtg/2014-04/). Enjoy!

* Evan Swick has written a [blog post about Swift
internals](http://www.eswick.com/2014/06/inside-swift/) using information
gleaned from reverse engineering Swift binaries and the runtime.

* The next Paris LLVM social will [take place on June
23rd](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73838).

* The next Cambridge LLVM Social will [take place on the 25th of
June](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73717).


## On the mailing lists

* George Burgess has posted to the list to [announce he'll be interning with
Google and working on a new alias analysis algorithm for
LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73724). He will
be implementing an algorithm based on
[this paper](http://www.cse.cuhk.edu.hk/lyu/_media/paper/pldi2013.pdf). His
full proposal is [available
here](https://docs.google.com/document/d/1nGFKMmr-HbdEiag9G1GeWurgOV0CweSUjLXFr3LAwqg/edit).

* Tim Northover has written an [RFC on adding cmpxchg weak to the LLVM
IR](http://article.gmane.org/gmane.comp.compilers.llvm.cvs/192081). This seems
to have been rapidly accepted as patches were commited this week.

* Mark Tullsen is working on a tool that allows programmers to write custom
program properties in a high level DSL. They are using libclang but are
[missing the ability to perform transformations on the
AST](http://article.gmane.org/gmane.comp.compilers.clang.devel/37229). David
Chisnall gives a good [motivation for why AST transformations are not
supported](http://article.gmane.org/gmane.comp.compilers.clang.devel/37236).

* Apple are [advertising for engineers to join their Swift
team](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73730). This
started a discussion about what the rules about job postings to the LLVM list
should be and also elicited [another response from Chris Lattner on whether
Swift will be
open-sourced](http://article.gmane.org/gmane.comp.compilers.clang.devel/37217).
"You can imagine that many of us want it to be open source and part of llvm,
but the
discussion hasn't happened yet, and won't for some time."

* Alp Toker has [announced to those using
LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73768) that the
llvm/Config/config.h header is becoming internal to the LLVM source tree.
Out-of-tree LLVM-based projects should be updated.

* Tom Stellard has [announced to the
list](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73721) that
`setOperationAction(ISD::SELECT_CC, MVT::Other, Expand)` is no longer
supported and you must explicitly set the `SELECT_CC` operations for each
supported type.

* A [pre-reminder for LLVM
3.5](http://article.gmane.org/gmane.comp.compilers.clang.devel/37258). The
process will be starting in mid-July (more details to come later).


## LLVM commits

* A weak variant of cmpxchg has been added to the LLVM IR, as has been [argued
for](http://article.gmane.org/gmane.comp.compilers.llvm.cvs/192081) on the
mailing list. Weak cmpxchg allows failure and the operation returns `{iN, i1}`
(in fact, for uniformity all cmpxchg instructions do this now). According to
the commit message, this change will mean legacy assembly IR files will be
invalid but legacy bitcode files will be upgraded during read.
[r210903](http://reviews.llvm.org/rL210903).

* X86 FastISel gained support for handling a bunch more intrinsics.
[r210709](http://reviews.llvm.org/rL210709),
[r210720](http://reviews.llvm.org/rL210720) and more. FastISel also saw some
target-independent improvements [r210742](http://reviews.llvm.org/rL210742).

* This week there were many updates to the MIPS backend for mips32r6/mips64r6.
e.g. [r210899](http://reviews.llvm.org/rL210899),
[r210784](http://reviews.llvm.org/rL210784) and many more.

* NoSignedWrap, NoUnsignedWrap and Exact flags are now exposed to the
SelectionDAG. [r210467](http://reviews.llvm.org/rL210467).

* Support has been added for variable length arrays on the Windows on ARM
Itanium ABI. [r201489](http://reviews.llvm.org/rL210489).

* Some simple reordering of fields in Value and User saves 8 bytes of padding
on 64-bit. [r210501](http://reviews.llvm.org/rL210501).

* FastISel will now collect statistics on when it fails with intrinsics.
[r210556](http://reviews.llvm.org/rL210556).

* The MIPS backend gained support for jr.hb and jalr.hb (jump register with
hazard barrier, jump and link register with hazard barrier).
[r210654](http://reviews.llvm.org/rL210654).

* AArch64 gained a basic schedule model for the Cortex-A57.
[r210705](http://reviews.llvm.org/rL210705).

* LLVM has transitioned to using `std::error_code` instead of
`llvm::error_code`. [r210687](http://reviews.llvm.org/rL210687).


## Clang commits

* The `-Wdate-time` preprocessor warning from GCC has been implemented. This
is useful when trying to create reproducible builds.
[r210511](http://reviews.llvm.org/rL210511).

* Loop unroll pragma support was added.
[r210667](http://reviews.llvm.org/rL210667).

* Yet more progress has been made on MS ABI compatibility. e.g.
[r210813](http://reviews.llvm.org/rL210813),
[r210637](http://reviews.llvm.org/rL210637).


## Other project commits

* libcxx gained an implementation of `string_view` as proposed in
[N4023](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4023.html).
[r210659](http://reviews.llvm.org/rL210659).

* Some of the iOS8/OS X Yosemite specific lldb support has been merged.
[r210874](http://reviews.llvm.org/rL210874).



More information about the llvm-dev mailing list