Alex Bradbury via llvm-dev
2018-Nov-05 22:05 UTC
[llvm-dev] LLVM Weekly - #253, November 5th 2018
LLVM Weekly - #253, November 5th 2018 ==================================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/253>. Welcome to the two hundred and fifty-third 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](https://www.linkedin.com/in/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 at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web If you're lucky enough to be at SC18 in Dallas this year, there is a lot of LLVM-related talks and meetups to check out. On Sunday 11th November you'll want to attend the [LLVM Social and Flang meetup](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127303.html). Then on Monday 12th you can attend the [Fifth Workshop on the LLVM Compiler Infrastructure in HPC](https://llvm-hpc5-workshop.github.io/). Then on Tuesday 13th you can attend the [LLVM in HPC: What's New?](https://sc18.supercomputing.org/presentation/?id=bof111&sess=sess372) BoF as well as Hal Finkel's talk "Teaching LLVM's Optimizer to Understand OpenMP" at the OpenMP Booth (1.45pm-2.15pm). The call for papers if open for the [LLVM Performance Workshop at CGO 2019](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127304.html). The workshop will take place on 16th Feb 2019 in Washington DC. The deadline for submissions is December 15. LLVM 7.0.1-rc2 has [been tagged](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127464.html). Time to get testing! John Regehr has a short blog post on [recently added implicit integer cast sanitizers](https://blog.regehr.org/archives/1633). Herb Sutter has written a [pre-trip report](https://herbsutter.com/2018/11/05/pre-trip-report-fall-iso-c-standards-meeting-san-diego/) for the San Diego ISO C++ standards meeting that is starting today. ## On the mailing lists * Justin Bogner started a discussion on [dealing with out-of-tree changes and the proposed LLVM git monorepo](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127334.html). He describes the issues faced for maintainers of out-of-tree targets when trying to migrate to the monorepo, which has a completely different history to the previous git mirrors. James Y Knight [reports](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127496.html) he's preparing a tool to help rewrite these downstream repositories. * [libc++ is not using `always_inline` anymore for visibility purposes](http://lists.llvm.org/pipermail/cfe-dev/2018-October/059980.html). A 7% reduction in size of the Chrome binary was reported after this patch. * Nico Weber gave a [report](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127342.html) from his round-table on the [GN meta-build system](https://gn.googlesource.com/gn). He is seeking feedback on adding GN build files to the repo. This generated substantial discussion, with a number of concerns raised about the maintenance burden of adding a second build system (after only relatively recently dropping autoconf+Make). * Eric Schweitz has written an RFC on [adding debug information to LLVM to support Fortran](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127419.html). * Mircea Trofin [proposes](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127461.html) adding support for trace profile driven cache prefetching insertion for LLVM. The LLVM-side support takes as input a profile in afdo format which contains prefetch hint recommendations. * David Greene has shared an RFC on [adding a system model to LLVM](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127319.html). This would capture information caches, prefetch heuristics, streaming memory buffers etc. This is based on the system model used in the Cray compiler. * Louis Dionne has started a discussion on the [per-translation unit ABI guarantee of libc++](http://lists.llvm.org/pipermail/libcxx-dev/2018-October/000038.html). This thread proposes dropping the guarantee that TUs can be linked together even if they use different headers of libc++ and is actively seeking feedback. Is this guarantee important to you? If so, speak up. * Joey Gouly [proposes](http://lists.llvm.org/pipermail/cfe-dev/2018-November/060041.html) using TableGen to define OpenCL builtins and generate a trie and tables for recognising and constructing the thousands of function declarations. * John McCall offers a great summary of [the challenges of using LLVM IR for high-level optimisations](http://lists.llvm.org/pipermail/cfe-dev/2018-October/059982.html). * David Greene started a discussion on [the LLVM RFC process](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127316.html). Kristina Brooks [raised](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127318.html) concerns that RFCs often go without many responses on the mailing lists. ## LLVM commits * `-Wimplicit-fallthrough` is now enabled when building LLVM. [r345887](https://reviews.llvm.org/rL345887). * The `llvm.sponentry` intrinsic was added in order to correctly support setjmp on the AArch64 Windows platform. [r345909](http://reviews.llvm.org/rL345909). * The MachineVerifier is now enabled by default for X86. [r345593](http://reviews.llvm.org/rL345593). * The DAGCombiner learned to narrow vector binops when extraction is cheap. [r345602](http://reviews.llvm.org/rL345602). * New constrained intrinsics for maxnum and minnum were added. These can be used when a specified rounding mode or floating-point exception behaviour is required. [r345650](http://reviews.llvm.org/rL345650). * TableGen's PredicateExpander now allows more complex constraints to be given on instruction operands for use in complex scheduling predicates. [r345714](http://reviews.llvm.org/rL345714). * The Microsoft demangler now exposes its AST publicly for use in LLDB. [r345837](http://reviews.llvm.org/rL345837). ## Clang commits * The implicit integer conversion sanitizer is now fully functional. [r345660](http://reviews.llvm.org/rL345660). * clang-query gained an API for non-exclusive output. Allowing e.g. AST dumping and diagnostics output at once. [r345522](http://reviews.llvm.org/rL345522). ## Other project commits * Users wanting to link together translation units built with different versions of libc++ headers into the same final linked image must define the `_LIBCPP_HIDE_FROM_ABI_PER_TU` macro to 1. [r345516](https://reviews.llvm.org/rL345516). * By setting `LIBCXX_ABI_NAMESPACE` it's possible for users to customise the libc++ versioning namespace and build custom versions of libc++ that can be linked into binaries with other libc++ versions without causing symbol conflicts. [r345657](https://reviews.llvm.org/rL345657).