LLVM Weekly - #179, Jun 5th 2017
Welcome to the one hundred and seventy-ninth 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
John Regehr has blogged about pointer overflow checking in LLVM.
Krister Walfridsson has an overview of interprocedural optimisations available in GCC.
The next Paris LLVM social will be held on June 14th 2017, featuring three guest speakers. Please register if you would like to attend.
On the mailing lists
-
Dimitri Racordon asked about structure handling in LLVM. Sean Silva followed up with two fantastic responses, which answer this question and much more.
-
Matt Dziubinski has followed up to last week's message about optimising assemblers with a huge list of references and related work.
-
Kristof Beyls proposes making armv7a and armv8a default to mcpu=generic. He further shows that enabling scheduling for an in-order core is also beneficial. There seems to be universal agreement.
-
Alina Sbirlea has written an RFC on replacing the AliasSetTracker with MemorySSA in Loop Invariant Code Motion.
-
Graham Hunter has shared an updated RFC on supporting Scalable Vector architectures in LLVM IR.
-
Jake Ehrlich proposes the implementation of an llvm-objcopy tool.
-
Kristof Beyls has the latest performance numbers for GlobalISel at O0 on AArch64.
LLVM commits
-
The PowerPC backend will perform an inline expansion of memcmp, using the new
expandMemCmp
function in TargetTransformInfo. r304313. -
The first Nios2 patch has landed. r303144.
-
Documentation on the "Vectorization Plan" model has been added. r304161.
-
Each backend can implement TargetMachine::isMachineVerifierClean to indicate if machine verifier checks are expected to pass. This will allow the machine verifier to be enabled by default with
EXPENSIVE_CHECKS
. r304320. -
The ThinLTO pipeline has been ported to the new pass manager. r304407.
-
A Cortex-A57 scheduling model has been added for AArch32. r304530.
Clang commits
-
The Undefined Behaviour Sanitizer (UBSan) can now check for overflow on pointer arithmetic. r304459.
-
libclang now exposes the ability to "suspend" a translation unit. This helps to reduce memory usage, at the cost of requiring a re-parse if more information is needed from it. r304212.
Other project commits
-
The SBStructuredData class gained an API to access data types directly. r304138.
-
Polly's ability to collect performance statistics has been improved, and performance counters can now work on a per-SCoP (static control part) basis. r304528.
-
The libcxxabi build system has been refactored to remove the dependence on LLVM's CMake modules. r304374.