LLVM Weekly - #265, January 28th 2019
Welcome to the two hundred and sixty-fifth 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 [email protected], or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
Papers have been published for the next C++ standards meeting.
On the mailing lists
-
Vedant Kumar shares an update on the status of the hot/cold splitting pass, including some early performance results.
-
Johannes Rudolf Doerfert has written an RFC on late OpenMP GPU code 'SPMD-zation'. This involves a new middle-end LLVM IR pass that tries to convert guarded mode code to SPMD mode. After some discussions on-list and IRC, Johannes clarified the idea further.
-
Alexey Bader reports that Intel's SYCL compiler and runtime sources are now on GitHub and they intend to start sending patches for review in the coming weeks.
-
Craig Topper provides an update on the status of asm-goto support in Clang/LLVM.
-
David Chisnall has identified a MemorySSA related regression and is looking for help in tracking it down further.
-
Yvan Roux has posted an RFC on adding Machine Outliner support for ARM.
LLVM commits
-
The agreed toolchain update policy is now documented in the LLVM Developer Policy. r351765.
-
ADT headers no longer use
__attribute__((always_inline)
. Instead, people are recommended to compile a Release build in order to get better performance executing the unit tests. r351891. -
MS SEH extensions
__try/__except/__finally
are now supported for AArch64 COFF. r351370. -
ScalarEvolution now computes expression sizes estimates. r351725.
-
The LangRef description of volatiles has been clarified. r351772.
-
HWASan memory access checks are now emitted using small outlined functions on AArch64, meaning there is much less code size bloat but slightly higher performance overhead. r351920.
-
HotColdSplit is now run earlier in the pipeline, resulting in substantial code size benefits. See the commit message for full details. r352080.
-
i32 variable shifts and sdiv/udiv/urem are now custom-legalised to target-specific nodes. This results in a more reliable selection of the relevant
*W
instruction (e.g. SLLW, DIVUW etc). r352169, r352171. -
A new TableGen language feature
!cond
was added, providing an alternative to nested!f
. r351285. -
HotColdSplit gained a new cost model to control splitting behaviour. r352228.
Clang commits
-
clangd gained an IncludeFixer which can suggest include insertion fixes when e.g. there is a member access into an incomplete type. r352361.
-
_Float16
is now disabled by default for targets other than ARM and SPIR. r352221. -
clang-analyzer checkers now declare their dependencies. r352287.