LLVM Weekly - #216, Feb 19th 2018

Welcome to the two hundred and sixteenth 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

LLVM has been accepted to Google Summer of Code 2018. Student applications open on March 12th.

Martin Cracauer has written a blog post on LLVM's garbage collection facilities and SBCL's generational GC.

The paper Crellvm: Verified Credible Compilation for LLVM has been accepted for PLDI 2018, and may be of interest to many LLVM Weekly readers. The authors present a methodology for validating optimisations, and apply it to mem2reg and gvn (global value numbering).

Serge Guelton and Juan Manuel Martinez Caamaño have written Easy::jit, a Just-In-Time compiler for C++ built using Clang and LLVM.

On the mailing lists

Dean Michael Berris has written an RFC on adding an XRay profiling mode to LLVM, which gathers basic statistics about where time is being spent when executing a program.

Galina Kistanova announces that a new performance builder has been added for LLD, which exports its results using LNT.

Philip Reames shares his observations on currently missing cases where attributes could be inferred.

Hans Wennborg indicates that the 6.0.0 final tag won't be made by the 21st of Feb (as in the original release schedule), but the hope is to have rc3 tagged by Friday with release blockers fixed.

LLVM commits

The width of the GEP (getelemenptr) index used in address calculation can now be specified using the data layout string. r325102.

LLVM will now try harder to report a fatal error when out of memory (when memory allocation fails). r325426.

The X86 disassembler now properly decodes old AMD 3DNow! instructions. r325295.

The patch that extended MachineCopyPropagation to do COPY source forwarding has been reverted. r325421.

Clang commits

The 'artificial' function attribute is now supported. This controls debugger stepping behaviour with respect to inline functions. r325081.

clang-tidy gained a new checker for exceptions that are created but not thrown. r325222.

Other project commits