LLVM Weekly - #322, Mar 2nd 2020

Welcome to the three hundred and twenty-second 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 http://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

IBM have announced that their C/C++ and Fortran compilers will be adopting the LLVM open source infrastructure. "IBM intends to fully incorporate the LLVM Core and Clang sub-projects in future C/C++ offerings on z/OS, Linux on Power, and AIX platforms."

Guidance has been issued for EuroLLVM 2020 and Coronavirus (COVID-19).

Alex Denisov released llvm2graphml, a new tool for exploring LLVM bitcode interactively

On the mailing lists

LLVM commits

The callbr instruction can now return non-void values. 23c2a5c.

A new CoalescingBitVector datatype was implemented and used to solve a compile-time explosion issue in LiveDebugValues. b0142cd, 210c485, a993720.

The coverage mapping format was changed to reduce binary size. This shrinks the size of llc's coverage segment by 82%. 9931712.

Fixed point saturating division intrinsics were added. 6e561d1.

Infrastructure was added to print and parse MIR MachineOperand comments. 7efabe5.

The MachineVerifier was passed up by about 35% through optimisations to calcRegsPassed (converting it reverse post order traversal). It was then sped up by another 15-20% by optimising the set representation. 6f87b16, b3bce6a.

The scalar evolution expander gained new cost models. cc29600, 756af2f, 0f3c9b5, and more.

An llvm-gsymutil was started that can convert object files to GSYM and perform lookups. 2f6cc21.

InstCombine was altered to eliminate dead instructions earlier. 4ef272e.

Clang commits

Clang now supports output constraints on asm goto . 50cac24.

LLVM IR for C++ operator new now contains additional attributes beyond noalias , when appropriate. 3dd5a29.

Other project commits