Alex Bradbury via llvm-dev
2017-Nov-06 20:43 UTC
[llvm-dev] LLVM Weekly - #201, Nov 6th 2017
LLVM Weekly - #201, Nov 6th 2017 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/201>. Welcome to the two hundred and first 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 Videos from the 2017 LLVM Dev Meeting are now [starting to appear](https://www.youtube.com/playlist?list=PL_R5A0lGi1ADRlI51k7qV9gw1N4DBNUUW). Kamil Rytarowski has posted an update on [LLDB and Sanitizer development for NetBSD](http://blog.netbsd.org/tnf/entry/one_year_checkpoint_and_thread). ## On the mailing lists * Zachary Turner [revived the discussion on requiring a C++14 or even C++17 compiler to build LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118673.html). Paul Robinson [pointed out](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118696.html) that MSVC support is important to consider. * Walter Lee shared an RFC on [patching ASan to support coarser shadow memory granularity](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118679.html). * Graham Yiu proposes [enabling the partial inliner by default](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118752.html). * Rafael Avila de Espindola started a discussion on [using LNT to track LLD performance](http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20171030/498843.html). * Crag Topper is [proposing](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118734.html) to add `-mprefer-avx256` and `-mprefer-axv512` flags to Clang. These limit the vector register width used by LLVM, and might be used if you're concerned about use of 512-bit operations resulting in CPU frequency reduction. * Mandeep Singh Grang has been working to uncover and fix more sources of non-determinism in LLVM and Clang. He has [uncovered](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118639.html) a list of failures caused by reliance on the unstable `std::sort` or `array_pod_sort` and is looking for help in tracking down and fixing the source of these failures. * Zachary Turner is [proposing](http://lists.llvm.org/pipermail/llvm-dev/2017-November/118786.html) to change the way the debuginfo-tests are run. Some responders to the thread were concerned about the work created for maintainers of large continuous integration setups. ## LLVM commits * The MirCanonicalizerPass ('mir-canon') was committed. This will reorder instructions and rename operands to reduce the diff when comparing two similar programs. [r317285](https://reviews.llvm.org/rL317285). * GlobalISel gained support for the emission of multi-instruction sequences. [r317117](https://reviews.llvm.org/rL317117). * The newly added CallSiteSplitting pass will try to split a call site in order to provide tighter constraints on its arguments. [r317351](https://reviews.llvm.org/rL317351). * The class hierarchy for atomic and non-atomic memory intrinsics has been modified. The commit message includes a script for renaming the changed classes in downstream trees. [r316950](https://reviews.llvm.org/rL316950). * The DWARF ASM printer now supports the `.cfi_restore` directive. [r317199](https://reviews.llvm.org/rL317119). * ExpandMemCmp is now a separate pass. This functionality previously lived in CodeGenPrepare. [r317211](https://reviews.llvm.org/rL317211). * llvm-dsymutil now has a man page. [r317221](https://reviews.llvm.org/rL317221). * TargetFrameLowering.h has been moved to include/llvm/CodeGen. [r317379](http://reviews.llvm.org/rL317379). * The range-based `llvm::for_each` has been introduced, wrapping `std::for_each`. [r317356](https://reviews.llvm.org/rL317356). ## Clang commits * clangd now has an internal performance tracking facility, producing output compatible with Chrome's tracing visualiser. [r317193](https://reviews.llvm.org/rL317193). * The const-ness of the builtins matching math.h and complex.h functions has been corrected.[r317265](https://reviews.llvm.org/rL317265). * `-fdefault-calling-conv` can now be used to set regcall as the default calling convention. [r317268](https://reviews.llvm.org/rL317268). ## Other project commits * LLDB gained data formatters for libc++'s `forward_list`, `std::tuple`, and `std::queue`. [r316992](https://reviews.llvm.org/rL316992), [r317095](https://reviews.llvm.org/rL317095), [r317099](https://reviews.llvm.org/rL317099). * LLD can now report line numbers for duplicate declarations of data symbols. [r317080](https://reviews.llvm.org/rL317080). ## Review corner The LLVM Weekly review corner serves to highlight patches that are stuck waiting awaiting review, or work from first-time contributors. See [here](http://llvmweekly.org/reviewcorner) for more information and how to submit you work for inclusion. Of course the hope is that highlighting these patches will enable LLVM Weekly readers will step up and help to get them merged. I'll be reporting back each week on any activity generated on these patches, as well as sharing a new batch. If you want your patch included you must submit it via the linked form. There was one patch submission this week: * "The current jump threading pass disregards branch hint information associated with the branch it is optimizing. This patch makes the jump threading pass propagate branch hints from the branch it is erasing." [D31647](https://reviews.llvm.org/D31647), patch by Hiroshi Inoue.