LLVM Weekly - #405, October 4th 2021
Welcome to the four hundred and fifth 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
The LLVM Foundation have announced an outdoor in-person event, the LLVM Bay Area Meetup, which will take place on October 20th.
On the mailing lists
ORC JIT Weekly #40 is out, covering the switch to SimpleRemoteEPC.
Paul Robinson asks if others would be interested in a tool to check TargetLibraryInfo against actual libraries.
Chris Tetreault warned of an SSL-related issue using arcanist to access Phabricator. This naturally reignited discussion on moving away from Phabricator. In a parallel thread, Mehdi Amini summarised the two main identified blockers from an Infrastructure Working Group meeting.
Snehasish Kumar shared an RFC on introducing a binary serialization format for MemProf.
Mircea Trofin is seeking feedback from the LLVM community on introducing a dependency on abseil into Google’s benchmark library. See google/branchmark#1183 for the upstream discussion.
Noah Shutty shared plans on building a debuginfod client and server library as part of the LLVM project.
Jay Foad provide a summary of recent work on enabling the machine verifier in more places in the pass pipeline and transitioning TwoAddressInstructionPass to LiveIntervals. Jay is seeking code reviews, comments, patches, advice, testing, etc.
Jonas Paulsson details a common problem, where frontends neglect to add signext/zeroext as needed on an argument passed by register and suggested introducing a new structarg attribute, and then erroring in the backend if the parameter doesn’t have signext/zeroext/structarg.
LLVM commits
isSafeToMoveBefore was made less pessimistic. c427727.
The type promotion pass was enabled for AArch64, removing some unnecessary extends. 8a645fc.
A number of in-tree tests were updated to use
-passes <passname>
to specify the pass pipeline in favour of the deprecated-passname
arguments. 3f8027f.As part of the SystemZ z/OS LLVM work, an initial GOFF assembly parser skeleton has been committed. fb99424.
New LLVM metadata helper functions
printTree
anddumpTree
allow printing an MDNode in an easy to read tree shape. 475de8d.
Clang commits
A new
clang final
pragma was introduced, enabling warning on undefinition and re-definition of macros. 1e48ef2.clang-cl gained support for
#pragma warning(disable : N)
to disable warnings matching the specified integer identifier. b2de52b.-Wbool-operation
was extended to warn about bitwise AND of booleans with side effects. f62d18f.clang-formatted-files.txt was checked in, which aims to list all files within LLVM that are unchanged when processed by clang-format. This list will be used to ensure changes to clang-format don’t unexpectedly change its output. 5aca8bb.
clang-tidy now recognises
NOLINTBEGIN
andNOLINTEND
comments to delimit regions where clang-tidy warnings should be suppressed. c0687e1.
Other project commits
LLVM’s libc gained implementations of the conditional variable functions defined in the C standard. 8379fc4.
libcxx’s std::format implemented Unicode support. ac7031b.
Min/max operations were added to the standard MLIR dialect. 9fb57c8.
LLVM’s OpenMP library now features libompd - the OpenMP debugging library. 62fddd5.