LLVM Weekly - #201, Nov 6th 2017
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. 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
Videos from the 2017 LLVM Dev Meeting are now starting to appear.
Kamil Rytarowski has posted an update on LLDB and Sanitizer development for NetBSD.
On the mailing lists
-
Zachary Turner revived the discussion on requiring a C++14 or even C++17 compiler to build LLVM. Paul Robinson pointed out that MSVC support is important to consider.
-
Walter Lee shared an RFC on patching ASan to support coarser shadow memory granularity.
-
Graham Yiu proposes enabling the partial inliner by default.
-
Rafael Avila de Espindola started a discussion on using LNT to track LLD performance.
-
Crag Topper is proposing 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 a list of failures caused by reliance on the unstable
std::sort
orarray_pod_sort
and is looking for help in tracking down and fixing the source of these failures. -
Zachary Turner is proposing 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.
-
GlobalISel gained support for the emission of multi-instruction sequences. r317117.
-
The newly added CallSiteSplitting pass will try to split a call site in order to provide tighter constraints on its arguments. r317351.
-
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.
-
The DWARF ASM printer now supports the
.cfi_restore
directive. r317199. -
ExpandMemCmp is now a separate pass. This functionality previously lived in CodeGenPrepare. r317211.
-
llvm-dsymutil now has a man page. r317221.
-
TargetFrameLowering.h has been moved to include/llvm/CodeGen. r317379.
-
The range-based
llvm::for_each
has been introduced, wrappingstd::for_each
. r317356.
Clang commits
-
clangd now has an internal performance tracking facility, producing output compatible with Chrome's tracing visualiser. r317193.
-
The const-ness of the builtins matching math.h and complex.h functions has been corrected.r317265.
-
-fdefault-calling-conv
can now be used to set regcall as the default calling convention. r317268.
Other project commits
-
LLDB gained data formatters for libc++'s
forward_list
,std::tuple
, andstd::queue
. r316992, r317095, r317099. -
LLD can now report line numbers for duplicate declarations of data symbols. r317080.
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 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, patch by Hiroshi Inoue.