LLVM Weekly - #259, December 17th 2018
Welcome to the two hundred and fifty-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
Jan Hubička wrote up a comparison of Firefox 64 built with GCC and Clang with LTO. As always with Jan's posts, it's a great read. One notable difference is that Clang-produced binaries are substantially larger (48% larger code section) because Clang does little to size-optimize cold regions. Also see the Hacker News thread for more discussion.
On the mailing lists
-
Johannes Doerfert shared an RFC on introducing transitive and abstract call sites in order to improve IPO in the presence of function pointers passed to runtime functions.
-
Oliver Giroux started a thread on extending libcxx for use in a CUDA C++ standard library. A key part of this proposal is the introduction of "freestanding" mode.
-
Anastasia Stulova started an RFC thread on fixing address spaces in C++ cast operators.
-
James Y Knight started discussing tag and branch naming in the git conversion prototype.
-
Johannes Doerfert started a thread discussing the fact stripPointerCasts can return a value with a different bit pattern to the input.
LLVM commits
-
A new signed fixed point multiplication intrinsic was introduced. r348912.
-
bugpoint will now search for 'opt', 'clang' and other executables from the LLVM build rather than just searching the user's PATH. r348734.
-
The AMDGPU backend gained a new pass to manage the mode register (currently just double precision floating point rounding mode). r348754.
-
Code-gen for RISC-V FMAs was added. r349023.
-
The PowerPC instruction definitions were refactored to differentiate between the different varieties of pseudo-instruction. r349044.
Clang commits
-
Try-catch blocks in constexpr fucntions are now supported, as proposed for C++20. r348789.
-
Clang learned to support
-frecord-command-line
, which embeds the driver command-line in an ELF section in the output. r349155.
Other project commits
-
libcxx gained a new alternative version of std::function. r348812.
-
LLD now understands
--plugin-opt=emit-llvm
which will combine all bitcode files and write the result to an output file without doing codegen. The Gold LTO plugin has the same option. r349198. -
Initial scaffolding was added to LLDB to recognise symbol files generated by breakpad. r348773.