LLVM Weekly - #451, August 22nd 2022

LLVM Weekly - #451, August 22nd 2022

If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/451.

Welcome to the four hundred and fifty-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 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

Registration is now open for the 2022 US LLVM Developers’ Meeting.

The August Women in Compilers and Tools virtual meetup will feature Ayana Monroe and Lisa Huang presenting “User-Enhanced Learning Experience of Symbolic Logic Programming”.

Kristof Beyls provided an update on LLVM’s relicensing, including how you can help, on the LLVM blog. See also the associated Discourse thread.

On the forums

LLVM commits

  • A scheduling model was added for X86 AlderLake-P. f4410d4.

  • Guidance was added on what to put in calendar invites for community events. 3d2ea3c.

  • SimplifyCFG should no longer introduce ptrtoint for non-integral pointers. 3a8d7fe.

  • llvm-reduce learned to call simplify-cfg on individual basic blocks. 2f1fa62.

  • Initial ELF/i386 support was added for JITLink. 29fe204.

  • Initial support for the NonNull intrinsic attribute was added. d68ba43.

  • MachineBasicBlock::hasAddressTaken() was split into isMachineBlockAddressTaken() and isIRBlockAddressTaken(). cfd2c5c.

  • Redundant branch-to-branches are now eliminated when expanding atomic cmpxchg on RISC-V. ce38128.

  • MC layer support was added for the RISC-V Zca extension. 515ece1.

  • getUserCost was replaced with getInstructionCost. fdec501.

  • On RISC-V, VScaleForTuning is now used to estimate the cost of operations whose cost depends on the vector length. As noted in the commit message, this produces better results in general, but there’s a risk of the cost being under-estimated if VScaleForTuning doesn’t accurately reflect the vector length on the target.

  • The coding standards guidance for constexpr if statements was clarified. cda0936.

Clang commits

  • Various unary type transformations were added as compiler built-ins. e9ef456.

  • Boolean and nullptr literals as well as negating and inverting values are now supported in the Clang interpreter. a2a5470, 80bbc05.

  • -finline-max-stacksize=<N> can be used to suppress inlining of functions who stack size exceeds N. 8564e2f.

Other project commits

  • Initial support was added to MLIR for a bytecode serialisation format. f3acb54.

  • <ranges> are no longer marked experimental in libc++. b8cb1dc.

  • A design doc for lowering polymorphic entities in Flang was committed. 26d3655.

  • Performance improvements were made to libc++'s format buffer. f7c0df00.

  • Software single stepping now works for LLDB RISC-V. 4fc7e9c.