LLVM Weekly - #415, December 13th 2021
Welcome to the four hundred and fifteenth 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 call for papers is out for the FOSDEM 2022 LLVM devroom, which will take place online on Saturay 5th February. The deadline for submissions is December 20th.
On the mailing lists
Aaron Ballman proposed relaxing the standardisation requirements for Clang extensions, noting that current practice already deviates from what is documented.
Carlos Galvez kicked off an RFC discussion on the precise style used for ‘end namespace’ comments. This was agreed and a patch clarifying the coding guidelines was committed.
Rafael Auler provided an updated on efforts to prepare BOLT for the LLVM monorepo.
Anton Korobeynikov announced that the migration from Bugzilla to GitHub Issues has now completed. Thank you to everyone involved.
Min-Yih Hsu proposed a new CodeEmitterGen infrastructure for variable-length instructions, intended for use by backends like X86 and M68k rather than the custom instruction encoders they’re currently using.
Iilya Diyachkov started an RFC discussion on behalf of Intel, Arm, and Khronos on the integration of the SPIR-V backend to LLVM.
Fraser Cormack made an RFC proposal on adding a new way of specifying vector alignments in DataLayout, specifically to allow specifying alignment based on element size, which is a better match for architectures like the RISC-V vector extension.
Philip Reames announced a beta test case reduction service. Simply create a PR against the linked repository to have your crash-producing or miscompilation (as shown by alive2) test case reduced.
Geoffrey Martin-Noble proposes changing the way lit resolves –path arguments.
Roman Lebedev shared an RFC about adding a memory region declaration intrinsic. Johannes Doerfert had a counter-proposal.
LLVM commits
A new basic block layout algorithm was added, aiming to optimise jump locality and thus processor I$ utilisation. f573f68.
Cycles were introduced as a generalisation of loops (see CycleTerminology.rst in the patch for a full description). 1d0244a.
LLVM now has a debuginfod client library. 0e0f1b2.
The Hexagon VLIWMachineScheduler was converted to target-independent code. cc3bb85.
The CSKY backend gained compressed instruction mapping between 32-bit and 16-bit instructions. bdd7c53.
Additional support for D demangling was added, including the ability to demangle special identifiers and function-local parent symbols. 8a7ddf9, 83087c0.
A PAC (Pointer Authentication Code) signing mechanism was added for PACBTI-M on Arm. 63eb7ff4.
New table instruction intrinsics were added for WebAssembly. 2fd634a.
A calculated score was added to the register allocation infrastructure. It intends to provide a measure of the quality of register allocation independent of the algorithm being used, that can be used to machine learning algorithms. fa99cb6.
Rather than duplicating the google/benchmark library within the repository, libcxx and llvm/utils now both use a fork within the thirdparty/ directory. 5dda2ef.
It is now possible to set a DataLayout with pointer sizes that aren’t a whole number of bytes. 0fcb16e.
Codegen of basic arithmetic and load/store operations is supported in the CSKY backend. a556ec8.
Clang commits
Documentation was added for Clang’s new dataflow analysis framework. ab31d00.
_ExtInt
has been deprecated in favour of_BitInt
, matching the accepted C23 proposal. 6c75ab5.