Alex Bradbury via llvm-dev
2017-May-29 16:51 UTC
[llvm-dev] LLVM Weekly - #178, May 29th 2017
LLVM Weekly - #178, May 29th 2017 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/178>. Welcome to the one hundred and seventy-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 The Rutgers architecture and programming languages research group have a helpful blog post about [the subtleties of undefined behaviour in LLVM shifts](https://compilersatrutgers.wordpress.com/2017/05/24/llvms-shifty-semantics/). As [noticed on Hacker News](https://news.ycombinator.com/item?id=14429825), a new LLVM backend for Go, [gollvm](https://go.googlesource.com/gollvm/) seems to be in development. The next Zurich LLVM social will be held [on May 31st](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113357.html). Please register if you would like to attend. ## On the mailing lists * Sanjoy Patel initiated a discussion on transformations of [select-of-select](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113261.html). This resulted in a lengthy thread on poison. One notable response was [the one from Nuno Lopes](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113272.html), which includes a summary table. This table doesn't render in the archive view, but [this tweet has a screenshot](https://twitter.com/johnregehr/status/867042518021492736). * Colin LeMahieu is looking at developing an optimising assembler for Hexagon and is [interested in feedback or suggestions](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113326.html) from others who are interested, or have worked on something similar. * Erik Pilkington is interning at Apple this summer and [will be working on parallel STL algorithms](http://lists.llvm.org/pipermail/cfe-dev/2017-May/053841.html). He is looking for input on this. Hal Finkel [explained his reasoning for wanting an implementation that provides different underlying concurrency mechanisms](http://lists.llvm.org/pipermail/cfe-dev/2017-May/053847.html). * Zachary Turner asks if [the llvm Support and ADT libraries should be split](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113387.html). A number of the responses wonder if there is a more principled way to do this than just splitting between the files TableGen depends on vs those it doesn't. * Anton Korobeynikov notes that [traffic to the APT repo has increased significantly recently](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113269.html), seemingly due to traffic going to cloud hosting services. If you are running a CI system or building images using the LLVM apt repository, please ensure you are using local caching where possible. * Andrew Trick has responded to a previous question about modelling long register reservations with [some useful advice](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113268.html). ## LLVM commits * The LLVM documentation has been expanded to include tips on benchmarking. [r303769](http://reviews.llvm.org/rL303769). * A new GVNSink pass has been added, which sinks instructions based on Global Value Numbering. [r303850](http://reviews.llvm.org/rL303850). * A set of new constrained intrinsics have been added (e.g. llvm.experimental.constrained.sqrt). These intrinsics provide equivalent behaviour to a corresponding libm function, but allow the precise behaviour with respect to the rounding mode and exception behaviour to be controlled. [r303922](http://reviews.llvm.org/rL303922). * Iterator and range accessors have been added for the PHI nodes of a basic block. [r303964](http://reviews.llvm.org/rL303964). * A new localizer pass has been added for use with O0 GlobalISel. It shortens the live ranges of constants to reduce spills introduced by the fast register allocator. [r304051](http://reviews.llvm.org/rL304051). * The scheduling model for AArch64 Falkor has been refined. [r304108](http://reviews.llvm.org/rL304108). * The mapping tables for the X86 backend used to convert between register and memory forms of each instruction are now generated by TableGen. [r304088](http://reviews.llvm.org/rL304088). ## Clang commits * There's been a flurry of activity on coroutine support this week. e.g. elision of allocation and deallocation. [r303596](http://reviews.llvm.org/rL303596), [r303599](http://reviews.llvm.org/rL303599). * git-clang-format is now Python 3 compatible. [r303871](http://reviews.llvm.org/rL303871). ## Other project commits * The `<experimental/coroutine>` header has been added to libcxx, along with tests. With this as well as the Clang changes, you should be able to explore coroutine support in your own code. [r303836](http://reviews.llvm.org/rL303836), [r304101](http://reviews.llvm.org/rL304101). * New remote packet types for trace data have been added to LLDB. [r303972](http://reviews.llvm.org/rL303972).