LLVM Weekly - #246, September 17th 2018
Welcome to the two hundred and forty-sixth 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 GCC/LLVM Shenzhen social planned for 16th September has been rescheduled to October 20th or 21st due to hurricane Shanzhu.
Stephen Kelly has written a blog post on recent Clang API changes he's contributed.
On the mailing lists
-
Anastasia Stulova shared an RFC proposal on adding SPIR-V target support to
Clang.
This generated a long discussion thread, and a proposal for further discussion
at a roundtable at the upcoming LLVM Dev Meeting. Anastasia provided further
clarification about this
proposal.
-
Dan Gohman is looking for feedback on handling volatiles for
WebAssembly.
He notes that although WebAssembly support normal loads/stores and soon
atomics like regular ISAs, its likely to optimise loads/stores in ways which
aren't typically done by hardware-implemented ISAs.
-
Lou Wynn kicked
off a
discussion about the current status of the Clang static analyzer, focusing on
limitations of the constraint solver. Artem Dergachev
summarises
the current state of affairs.
-
Petar Avramovic started a GlobalISel-themed
discussion,
specifically around legality and instruction combining.
-
Philip Reames
proposes
generalizing load/store promotion in the loop invariant code motion pass.
-
Philip Reames shared an RFC on adding a thread.private
metadata
to support thread private storage.
-
Lang Hames is looking for feedback on adding a mutex and module count to
LLCMContext,
allowing the lifetime of the various LLVMContext created by the ORC JIT to be
managed safely.
-
If you're interested in finding out more about register allocation in LLVM,
this
thread
by Preston Briggs is a good starting point with great responses from Quentin
Colombet, Matthias Braun, and others.
LLVM commits
-
Initial vector code generation for simple outer loops using VPlan was
implemented. r342197.
-
A new API was added to update MemorySSA for cloned blocks and added CFG
edges. r341855.
-
check-llvm was sped up significantly on Windows by delaying the loading of
shell32 and ole32. r342002.
-
Support was added for symbol remapping files, intended for use with profile
data. r342161,
r342168.
Clang commits
-
New flags were added to reserve AArch64 registers x1-x7, needed when
building the Linux kernel with CONFIG_ARM64_LSE_ATOMICS
.
r342100.
-
The clang static analyzer's iterator checker gained support for checking
'mismatched' iterators, checking cases where it would be an error for
iterators from different containers to be passed. It also gained support for
push, pop, assign, clear, insert and erase operations.
r341790,
r341793,
r341794.
-
The -Watomic-implicit-seq-cst
warning was added, which triggers if
_atomic
or __sync_*
operations are used without explicitly specifying the
memory ordering. r341860.
-
The control flow integrity (CFI) documentation now describes a VTable
interleaving scheme. r341989.
Other project commits
Anastasia Stulova shared an RFC proposal on adding SPIR-V target support to Clang. This generated a long discussion thread, and a proposal for further discussion at a roundtable at the upcoming LLVM Dev Meeting. Anastasia provided further clarification about this proposal.
Dan Gohman is looking for feedback on handling volatiles for WebAssembly. He notes that although WebAssembly support normal loads/stores and soon atomics like regular ISAs, its likely to optimise loads/stores in ways which aren't typically done by hardware-implemented ISAs.
Lou Wynn kicked off a discussion about the current status of the Clang static analyzer, focusing on limitations of the constraint solver. Artem Dergachev summarises the current state of affairs.
Petar Avramovic started a GlobalISel-themed discussion, specifically around legality and instruction combining.
Philip Reames proposes generalizing load/store promotion in the loop invariant code motion pass.
Philip Reames shared an RFC on adding a thread.private metadata to support thread private storage.
Lang Hames is looking for feedback on adding a mutex and module count to LLCMContext, allowing the lifetime of the various LLVMContext created by the ORC JIT to be managed safely.
If you're interested in finding out more about register allocation in LLVM, this thread by Preston Briggs is a good starting point with great responses from Quentin Colombet, Matthias Braun, and others.
Initial vector code generation for simple outer loops using VPlan was implemented. r342197.
A new API was added to update MemorySSA for cloned blocks and added CFG edges. r341855.
check-llvm was sped up significantly on Windows by delaying the loading of shell32 and ole32. r342002.
Support was added for symbol remapping files, intended for use with profile data. r342161, r342168.
New flags were added to reserve AArch64 registers x1-x7, needed when
building the Linux kernel with CONFIG_ARM64_LSE_ATOMICS
.
r342100.
The clang static analyzer's iterator checker gained support for checking 'mismatched' iterators, checking cases where it would be an error for iterators from different containers to be passed. It also gained support for push, pop, assign, clear, insert and erase operations. r341790, r341793, r341794.
The -Watomic-implicit-seq-cst
warning was added, which triggers if
_atomic
or __sync_*
operations are used without explicitly specifying the
memory ordering. r341860.
The control flow integrity (CFI) documentation now describes a VTable interleaving scheme. r341989.