LLVM Weekly - #285, June 17th 2019
Welcome to the two hundred and eighty-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 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
LLVM 8.0.1-rc2 has been tagged.
The 7th HelloLLVM/HelloGCC social in China will take place on June 22 in Shanghai.
The OpenMandriva Lx 4.0 Linux distribution has been released. Notably, this distribution is (mostly) compiled with Clang/LLVM.
On the mailing lists
-
Eli Friedman shares a proposed change to the IR semantics: that constant expressions should never have undefined behaviour. Chris Lattner wonders if anyone might be interested in removing all trapping operators for constants.
-
Much more discussion was generated on the proposal to prefer 'int' for regular arithmetic - too much for me to reasonably summarise, but you might want to check out Chandler Carruth's response.
-
Jessica Paquette shared an RFC on an optimisation remarks based code size analysis tool
-
Francesco Petrogalli has rewritten his proposal for interfacing user-provided vector functions.
-
Nicolai Hähnle-Montoro is seeking feedback on expressing preserved-relations between passes from different modules.
-
Qing Shan Zhang has written patches to allow scheduling state to be forwarded across machine basic blocks (where there is a single predecessor) and is looking for reviews.
LLVM commits
-
The ValueTracking analysis gained a helpful clarifying comment, explaining that branching off poison isn't undefined behaviour, but executing a side effecting instruction following that branch would be. The LangRef was also expanded with new clarifications on poison. r363318, r363320.
-
MachineBlockPlacement learnt to move a latch block with conditional exit and multiple predecessors to the top of the loop. r363471.
-
MC layer support was added for the new non-MVE Arm v8.1-M instructions. r363059.
-
The semantics for fadd/fmul vector reductions were changed. r363035.
-
The RISC-V backend gained support for lowering I,J,K inline asm constraints and for PIC addressing sequences. r363054, r363058.
-
The AArch64 backend now merges globals by default when optimising for size. r363130.
-
The RISC-V, Mips, and SystemZ backends can now be build using the gn build system.r363154, r363159, r363170.
Clang commits
-
The SSE2 intrinsics were ported to PowerPC using Altivec. r363122.
-
Lexing, parsing, and basic semantics were aded for the C++20 consteval specifier. r363362.