LLVM Weekly - #388, June 7th 2021
Welcome to the three hundred and eighty-eighth 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
CAV 2021 features the LLVM-related paper “An SMT Encoding of LLVM’s Memory Model for Bounded Translation Validation”.
Nikita Popov wrote a blog post about design issues in LLVM IR.
The second Clang Built Linux Meetup and the LLVM Distributors Conf 2021 have been announced.
OpenASIP v1.23 has been released. “OpenASIP, also known as TTA-based Co-Design Environment (TCE), is an open source application-specific instruction-set processor (ASIP) toolset for design and programming of customized co-processors (compiler-programmable accelerators). It is based on the static energy efficient Transport Triggered Architecture (TTA) processor template.”
On the mailing lists
George Mitenkov, along with Nuno Lopes and Juneyoung Lee shared an RFC on introducing a byte type to LLVM with the intent ot fixing miscompilations due to load type punning. Concerns were raised (including by Chris Lattner) on whether this is the right way to go, and whether TBAA or other metadata should be used instead. Nuno Lopes followed up to explain why he views the issue as orthogonal to TBAA.
Tom Stellard shared a proposed migration plan (recommended by the LLVM Foundation Board of Directors) for moving the LLVM mailing lists over to Discourse.
David Blaikie is seeking feedback on using simplified template names in DWARF in order to reduce debug info size. e.g.
vector
instead ofvector<int, std::allocator<int>>
.Djordje Todorovic suggests reducing metadata in LLVM tests, and proposes a tool to help do this.
LLVM GPU News Issue #13 is out.
Fāng-ruì Sòng is seeking opinions on adding
--overwrite-section-script
to the linker.Sameer Sahasrabuddhe proposes making calls “convergent” by default in order to better support operations that are sensitive to the set of threads that execute them together.
David Goldblatt started a thread on improving codegen for the C++20 spaceship operator.
LLVM commits
APInt DemandedBits::getDemandedBits(Use *U)
was introduced. cbde248.The AtomicExpandPass was modified to merge the cmpxchg success and failure when appropriate. 44cdf77.
LLVM will be built with
-fno-semantic-interposition
when being built with GCC or Clang 13 or higher. a96f875.
Clang commits
The
-Wunused-but-set-parameter
and-Wunused-but-set-variable
warnings were added. cf49cae.clang-format gained a PPIndentWidth option, allowing a different indent to be set for preprocessor statements. 6f605b8.
Support was added for MSVC’s ‘abstract’ contextual keyword. 116179c.
Other project commits
The MachO LLD linker gained support for
-dead_strip
. a564551.MLIR now allows attaching “debug labels” to patterns, and for filtering based on these labels. This is intended to aid debugging and make it easier to write tests targeted at specific patterns. 0289a26.
All algorithms in libcxx were moved into their own header file. 7ed7d4c.
LLDB performance for parsing symbol tables in MachO files was improved. b0572ab.
An experimental “nesting mode” feature was added to LLVM’s OpenMP library, allowing a nesting mode to be configured that match the topology of the machine being run. 8ec9aa2.