LLVM Weekly - #250, October 15th 2018
Welcome to the two hundred and fiftieth 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
The LLVM Dev Meeting is taking place in San Jose on Wednesday and Thursday this week and has a jam-packed schedule. I'm giving a LLVM backend development tutorial and an associated coding lab. The "coding lab" is new for this Dev Meeting, and is a hands-on coding session where attendees can work through a series of LLVM coding tasks (in this case, focused on the RISC-V backend) in order to get some familiarity. If you're attending the Dev Meeting you should have received an email via Eventbrite about Round Tables and this Coding Lab. If you're planning to come along, please check the guidance here. Also, do say hi!
The call for papers is out for the LLVM toolchain devroom at FOSDEM 2019. The deadline for submissions is Sunday November 25th.
On the mailing lists
-
James Y Knight has shared a new LLVM git repository conversion prototype. There will be a round table discussion on the git migration plan at 4.30pm on Wednesday at the Dev Meeting.
-
Adam Nemet proposes adding a first-class matrix type to LLVM IR. There is lots of interest, but also plenty of questions about the cost/benefit. David Chisnall provided a good list of questions.
-
Richard Smith provided a list of beginner-friendly C++2a feature implementation tasks.
-
Eric Fiselier proposes merging the libc++ and libc++abi repositories.
-
David Greene is looking for feedback on re-using as much Clang infrastructure as possible for the f18 Fortran frontend.
-
Graham Hunter provided an update on progress implementing the SVE/variable vector lengths RFC.
-
Nicolai Hähnle shared an RFC on implementing array register files. This aims to improve support for representing large regular register files such as those in the AMDGPU target.
-
Stephen Crane has given an extensive update on the development of the Pagerando code randomisation mechanism.
-
Zachary Turner asks if LLVM should stop supporting building with Visual Studio.
LLVM commits
-
The VirtualFileSystem infrastructure has been moved in to LLVM from Clang. This was primarily motivated by the want to reuse it in LLDB. r34140.
-
Load-store forwarding in DAGCombine was improved. r344142.
-
CodeGen support was added for the AArch64-v8.5A Branch Target Identification instructions. r343967.
-
The X86 backend gained a new conditional branch folding pass, taking advantage of the three-way conditional code generated by compare instructions. r344085.
-
LocationSize now has an 'imprecise' bit. If set, the LocationSize is just an upper-bound for the size of the location. r344114.
-
A new library was introduced for parsing optimisation remarks. This provides a higher level interface than directly using a YAML parser, allowing the format of optimisation remarks to be changed in the future. r344171.
-
AddressSanitizer was ported from the legacy to the new PassManager. r344274.
-
The RISC-V backend now has patterns to eliminate unnecessary masking of promoted shift amounts. r344432.
-
llvm.minimum and llvm.maximum intrinsics were introduced, corresponding to the minimum and maximum operations defined in the draft IEEE 754-2018 standard. r344437.
Clang commits
-
Clang will now set appropriate
__code_model_*
defines based on the-mcmodel
command-line flag, matching the behaviour of GCC. r344000. -
ifunc resolvers can now accept arguments, matching GCC behaviour. r344100.
Other project commits
-
LLDB gained a SymbolFile plugin for cross-platform PDB access. This aims to replace the previous SymbolFilePDB plugin which was written against libraries from the proprietary Microsoft SDK. r344154.
-
The implicit integer truncation sanitizer was split into unsigned and signed checks. r344231.
-
The libcxx tree now contains benchmarks for std::function. r344415.