LLVM Weekly - #208, Dec 25th 2017
Welcome to the two hundred and 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.
For those of you who celebrate it, Merry Christmas! This festive edition of LLVM Weekly is packed full of what you really wanted for christmas - LLVM development summaries.
News and articles from around the web
LLVM 5.0.1 has been released.
Kotlin/Native v0.5 is here. This release includes support for LLVM 5, as well as C, Objective C and Swift interoperability.
Portable Computing Language (pocl) v1.0 has been released. Pocl is an open-source implementation of the OpenCL standard. This release adds support for LLVM/Clang 4.0 and 5.0, experimental NVIDIA GPU support, and passing OpenCL 1.2 conformance tests for some targets.
On the mailing lists
-
There's been further discussion about enabling GlobalISel for AArch64 O0 by default, and whether to do so prior to the branching of LLVM 6.0. A patch to flip the switch is under review.
-
Ariel Ben-Yehuda from the Rust team started a thread regarding a pass ordering problem encountered by Rust. Philip Reames suggests that using a frontend-specific pass order might be the pragmatic route forwards (as is done for the Azul Java compiler).
-
Petr Hosek started an RFC thread on the default path for cross-compiled runtimes: specifically libc++, libc++abi, and libunwind. The proposal aims to better support cross-compilation, though as some of the respondents suggest
--sysroot
may be sufficient. -
"xoviat" started a discussion on changes to the Clang driver needed for the flang Fortran frontend. Hal Finkel suggests that as much of the Clang driver code as possible should be reused.
LLVM commits
-
The hot path of llvm-symbolizer has been rewritten for higher performance. With the new implementation, llvm-symbolizer is over 2x faster for symbolizing backtraces from LLVM unit-tests. r321345.
-
Upstreaming of MC layer patches for AArch64 SVE is continuing, with support for parsing SVE predicate registers and the ZIP1/ZIP2 instructions. r320970, r320973.
-
The generated MatchTable used for GlobalISel is now more efficient. r321017.
-
MemCpyOptimizer can now optimize across basic blocks. r321138.
Clang commits
-
Clang (re)gained ARMv8.2-A FP16 vector intrinsics. r321294.
-
The Clang ASTDumper now supports a 'printing policy', allowing the output formatting to be specialised for C++. r321310.
Other project commits
-
LLD gained support for optimising Arm PLT sequences. r320987.
-
The LLVM test suite build system gained the CPU architecture detection capabilities. r321143.
Review corner
The LLVM Weekly review corner serves to highlight patches that are stuck waiting awaiting review, or work from first-time contributors. See here for more information and how to submit you work for inclusion. Of course the hope is that highlighting these patches will enable LLVM Weekly readers will step up and help to get them merged. I'll be reporting back each week on any activity generated on these patches, as well as sharing a new batch. If you want your patch included you must submit it via the linked form.
"Syndicate common code between CallInst and InvokeInst in a shared template base class. No functional change expected, but much less redundant code to support.". D40727, patch by "serge-sans-paille".