[llvm-dev] LLVM Weekly - #380, April 12th 2021
Alex Bradbury via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 12 10:07:44 PDT 2021
LLVM Weekly - #380, April 12th 2021
===================================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/380>.
Welcome to the three hundred and eightieth 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
The Mozilla Hacks blog featured a detailed post about [using ThreadSanitizer
to eliminate data races in
Firefox](https://hacks.mozilla.org/2021/04/eliminating-data-races-in-firefox-a-technical-report/).
Although the majority of talks at the first Community.o summit weren't
recorded, those that were are [now
available](https://www.youtube.com/playlist?list=PL_R5A0lGi1AD8Xakb5ZOE3ZP7vS4YSkXh)
on the LLVM Foundation's YouTube channel.
'duk' on the Secret Club blog looked in details at [differing codegen for
floating poitn clamp between Clang and
Rust](https://secret.club/2021/04/09/std-clamp.html). Ultimately a bug report
was [filed](https://bugs.llvm.org/show_bug.cgi?id=49909) and the codegen issue
was fixed.
Version 1.0 of HPVM (the Heterogeneous Parallel Virtual Machine) [has been
released](https://lists.llvm.org/pipermail/llvm-dev/2021-April/149693.html).
HPVM is a retargetable compiler infrastructure that targets CPUs, GPUs, FPGAs
and accelerators. It uses a target-independent compiler IR that extends the
LLVM 9.0.0 compiler IR with an explicit, hierarchical data flow representation
that captures task, data, and pipelined parallelism.
## On the mailing lists
* Melanie Blower posted a pair of RFCs [for
LLVM](https://lists.llvm.org/pipermail/llvm-dev/2021-April/149628.html) and
[for
clang](https://lists.llvm.org/pipermail/cfe-dev/2021-April/067982.html), to
provide finer grained (expression level) control for floating point
optimisation. Note that the linked Phabricator review threads provide a
detailed summary and rationale.
* Anastasia Stulova posted an RFC on [testing all OpenCL builtin function
declarations in
Clang](https://lists.llvm.org/pipermail/cfe-dev/2021-April/067973.html). The
proposal lists the various options under consideration and their trade-offs.
* Philip Reames initiated a discussion around an [ambiguity of the nofree
function
attribute](https://lists.llvm.org/pipermail/llvm-dev/2021-April/149706.html),
proposing two options: 1) nofree implies no call to free, or 2) nofree
applies to memory visible to the caller.
* Andrzej Warzynski asks [what clang should do when passed options that are
reserved for Fortran
inputs](https://lists.llvm.org/pipermail/cfe-dev/2021-April/067981.html),
noting that GCC tends to issue a warning rather than an error in such cases.
* LLVM 12.0.0-rc5 [has been
tagged](https://lists.llvm.org/pipermail/llvm-dev/2021-April/149653.html).
* Serguei Katkov posted a heads-up about [planned changes to the statistics
reported by the greedy register allocator to the optimisation remark
emitter](https://lists.llvm.org/pipermail/llvm-dev/2021-April/149631.html).
## LLVM commits
* The PreserveCFG checker had been redesigned.
[39e3e3a](https://reviews.llvm.org/rG39e3e3aa51d6).
* LLVM community norms around reverts are now documented.
[0918f44](https://reviews.llvm.org/rG0918f44e2670).
* GlobalISel for AArch64 learned to swap compare operands when it may be
profitable. [49c3565](https://reviews.llvm.org/rG49c3565b9ba7).
* The Ocaml bindings saw several cleanups and fixes.
[5c25ff8](https://reviews.llvm.org/rG5c25ff8739e0),
[58bb922](https://reviews.llvm.org/rG58bb9222dd29),
[e5b7fed](https://reviews.llvm.org/rGe5b7fedc573c),
[2c82ea1](https://reviews.llvm.org/rG2c82ea1849dc),
[d9bbd98](https://reviews.llvm.org/rGd9bbd9864578).
* Amongst other RISC-V vector changes, support was added for bitcasts between
scalars and fixed-length vectors.
[af3a839](https://reviews.llvm.org/rGaf3a839c70ad).
## Clang commits
* Initial support was added for the OpenMP 5.1 nocontext and filter clauses,
and the masked directive [7078ef4](https://reviews.llvm.org/rG7078ef472250),
[1a43fd2](https://reviews.llvm.org/rG1a43fd27691c).
* Additional RISC-V vector intrinsics were added.
[66c0560](https://reviews.llvm.org/rG66c05609e0d5),
[0a18ea0](https://reviews.llvm.org/rG0a18ea01f197),
[f720c22](https://reviews.llvm.org/rGf720c22e7729),
[fe252b5](https://reviews.llvm.org/rGfe252b509ee6),
[f2a3601](https://reviews.llvm.org/rGf2a3601aa5a5).
* C-style explicit type conversions are now supported for matrix types.
[71ab6c9](https://reviews.llvm.org/rG71ab6c98a0d1).
## Other project commits
* The flang driver gained support for the `-cpp` and `-nocpp` flags to control
enabling/disabling predefined and command-line preprocessor macros.
[b83a445](https://reviews.llvm.org/rGb83a4450c216).
* The remaining C++ callable concepts were added to libcxx.
[c7ad020](https://reviews.llvm.org/rGc7ad02009934).
* LLDB gained initial support for watching for fork/vfork, laying the
foundations for user-visible work on supporting fork.
[a345419](https://reviews.llvm.org/rGa345419ee030).
More information about the llvm-dev
mailing list