LLVM Weekly - #178, May 29th 2017
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. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@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.
As noticed on Hacker News, a new LLVM backend for Go, gollvm seems to be in development.
The next Zurich LLVM social will be held on May 31st. Please register if you would like to attend.
On the mailing lists
-
Sanjoy Patel initiated a discussion on transformations of select-of-select. This resulted in a lengthy thread on poison. One notable response was the one from Nuno Lopes, which includes a summary table. This table doesn't render in the archive view, but this tweet has a screenshot.
-
Colin LeMahieu is looking at developing an optimising assembler for Hexagon and is interested in feedback or suggestions 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. He is looking for input on this. Hal Finkel explained his reasoning for wanting an implementation that provides different underlying concurrency mechanisms.
-
Zachary Turner asks if the llvm Support and ADT libraries should be split. 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, 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.
LLVM commits
-
The LLVM documentation has been expanded to include tips on benchmarking. r303769.
-
A new GVNSink pass has been added, which sinks instructions based on Global Value Numbering. r303850.
-
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.
-
Iterator and range accessors have been added for the PHI nodes of a basic block. r303964.
-
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.
-
The scheduling model for AArch64 Falkor has been refined. r304108.
-
The mapping tables for the X86 backend used to convert between register and memory forms of each instruction are now generated by TableGen. r304088.
Clang commits
-
There's been a flurry of activity on coroutine support this week. e.g. elision of allocation and deallocation. r303596, r303599.
-
git-clang-format is now Python 3 compatible. r303871.