LLVM Weekly - #291, July 29th 2019
Welcome to the two hundred and ninety-first 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
Botond Ballo has written up a trip report from the Cologne C++ standards meeting. You might also be interested in the results of Herb Sutter's survey to find the top five ISO C++ feature proposals.
On the mailing lists
-
The discussion on changing variable naming rules in LLVM spawned a sub-thread on the interaction with git blame, with Chris Lattner giving further insight into why he now prefers a sweeping change and his concerns about avoiding codebase improvements due to concerns about history.
-
Andrew Wei has been adding GlobalISel support to the RISC-V backend and iss seeking feedback.
-
Hans Wennborg reports that 9.0.0-rc1 is coming a little bit later than expected, but should appear soon.
-
Paul Kirth proposes a new clang-mispredict tool that would identify and warn on potentially incorrect uses of
__builtin_expect()
. The tool would be built on top of the PGO infrastructure. -
Jon Korous shares an RFC on adding frontend insight remarks to Clang, e.g. to explicitly indicate when implict constructors are generated.
LLVM commits
-
Arm MVE codegen support continues, with the addition of MVE predicate register support. r366890.
-
LLVM's documentation gained definitions of commonly used terminology related to loops. r366960.
-
SanitizerCoverage has been ported to the new pass manager (the patch re-landed). r367053.
-
The Attributor can now deduce the "dereferenceable" attribute. r366788.
-
TargetLowering gained a SimplifyMultipleUseDemandedBits function, which can peek through operations that contribute to the demanded bits of a node. r366799.
-
The PowerPC backend now has a new peephole to remove redundant load immediate instructions. r366840.
-
Basic definitions were added for the Cortex-A64, Cortex-A65AE, Neoverse E1 and Neoverse N1. r367007.
Clang commits
-
Clang now implements P1771,
[[nodiscard]]
for constructors. r367027. -
firstprivate OpenMP variables are now supported. r366689.
Other project commits
-
LLVM's OpenMP implementation now has RISCV64 support. r367021.
-
The libc++ std::vector implementation was updated to workaround suboptimal codegen for
vector<unsigned char>
. r367183. -
The libc++ c++2a status page was updated. r366696.
-
TableGen is now used to generate LLDB property definitions. r367058.