LLVM Weekly - #211, Jan 15th 2018
Welcome to the two hundred and eleventh 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
A new post from Zachary Turner on the official LLVM blog describes recent work to improve link times on Windows with clang-cl and lld.
On the mailing lists
-
Marshall Clow has sent out a heads up that a number of components in std::experimental in libc++ are due to be removed on the 1st of February. These components (such as std::experimental::any) all have equivalents in std::. See the libcxx TS deprecation page for more info.
-
John McCall has posted an RFC on adding a new function attribute.
synthetic(<string>)
would prevent LLVM from propagating information about the body outside of the function, such as by changing attributes. The motivation is to enable some of the work John is doing in prototyping coroutine support for Swift. -
Steve O'Brien created an RFC on correcting string handling in CXString. It currently peeks past the end of the string allocation to try to determine if the StringRef it was given is a NUL-terminated string.
-
Discussion has resumed on supporting the
FENV_ACCESS
pragma.
LLVM commits
-
Support was added for X86 Indirect Branch Tracking. r322062.
-
A number of additional RISC-V codegen patches have now landed. Notably support for varargs, branch analysis, and branch relaxation. r322215, r322222, r322224.
-
-debug output will no longer print register classes alongside every instruction. r322086.
-
Lit's builtin diff command now supports
-r
, meaning recursive diffs can safely be used in tests on Windows. r322102. -
A new pass has been introduced to generate 'synthetic function entry counts'. This is a heuristic used to influence inlining. r322110.
-
An initial stack instrumentation pass has been implemented for HWASan. r322324.
Clang commits
-
The target attribute can now be used for function multiversioning as in GCC. This allows multiple versions of a function to be generated, with each version specialised for a target feature (e.g. neon, avx). r322028, r322043.
-
New documentation has been added summarising the current status of OpenMP 4.5 support in Clang. r322018.
-
Initial RISC-V target definition and compiler driver has been added. ABI lowering will land upstream shortly too. r322276.
-
A new target-independent control flow protection flag '-fcf-protection' has been added. This requests that the backend instruments control flow. r322063.
Other project commits
-
LLD's relocation processing has been rewritten and refactored. r322047.
-
libFuzzer now supports FreeBSD. r322380.
-
LLDB gained a new class for handling process environments. r322174.
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.
Thank you to Jonathan Coe for reviewing the patch featured last week.