LLVM Weekly - #193, Sept 11th 2017
Welcome to the one hundred and ninety-third 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
LLVM 5.0.0 is now available!
The program for the LLVM Dev Meeting 2017 has been posted. The conference takes place 18th-19th October in San Jose, California. Registration is $300 ($50 for full-time students).
Herb Sutter reports that C++17 has been formally approved. Clang support is of course in good shape.
On the mailing lists
-
River Riddle has posted a follow-up RFC on adding an IR-level interprocedural outliner for code size optimisations. This RFC tries to clear up several points of confusion vs the previous iteration, and includes direct comparison to the machine outliner.
-
Kim Gräsman has posted an RFC on integrating the popular include-what-you-use tool into clang-tools-extra. Manuel Klimek outlined some of the potential challenges in upstreaming. Some respondents wonder if the right approach might be to incrementally build something with equivalent functionality to include-what-you-use that makes use of existing LLVM/Clang tooling.
-
Siddharth Bhat kicked off a really interesting thread on replacing InstCombine with a graph rewriter. Hal Finkel's response is a good starting point for the interested reader.
-
Eli Friedman has written up a workflow for source-based code coverage on baremetal targets and wonders if anyone is interested in more formal documentation and upstreaming relevant patches. Unsurprisingly, the consensus seems to be "yes please!".
-
There will be an LLVM Foundation birds of a feather session at the upcoming LLVM Dev Meeting. Chris Lattner is looking for input on topics people would like to discuss.
-
Adrian Prantl is planning to make llvm-dwarfdump a drop-in replacement for dwarfdump on Darwin and wonders if anyone is particularly attached to the current command-line parameter naming.
-
Zachary Turner started a discussion on the status of debuginfo-tests. The thread participants went on to discuss the practicalities of using these test cases for CodeView debug info.
-
Juergen Ributzka is proposing another upstream contribution taken from XCode: TAPI, a tool for handling text-based dynamic library files. As explained in that thread "Text-based dynamic library files (TBDs) are a textual representation of the information in a dynamic library / shared library that is required by the static linker - basically a symbol list of the exported symbols."
-
Leslie Zhai has shared some motivating use-cases for the recent DragonEgg update.
-
Zachary Turner is looking for more Windows-based developers to help "dogfood" LLVM's PDB debug info on Windows.
-
Reid Kleckner introduced an RFC on better describing variables in memory with dbg.value. After discussions on and off the list, Reid followed up with a new approach that should be simpler. The problem: "The crux of the problem in that thread is that we need a representation, particularly in the middle-end, to describe a variables address, at a particular program point." This RFC introduces the dbg.addr intrinsic to solve this issue.
LLVM commits
-
XRay gained a new 'stacks' tool for stack-based accounting of input traces. r312733.
-
A new getInstructionCost interface has been added to TargetTransformInfo. This function can be used to query the reciprocal of throughput, latency, and instruction code size. r312832.
-
ORC's RemoteObjectClientLayer and RemoteObjectServerLayer provide an alternative approach to supporting remote-JITting in LLVM. r312511.
-
The coding standards document gained a warning about non-determinism due to ordering of pointers. r312667.
-
The new DivRemPairs pass will optimise div/rem pairs. r312862.
Clang commits
-
_Float16
is now a supported C/C++ source language type. r312781. -
The
-Wtautological-compare
warning will now complain about comparison of an unsigned value with signed zero. r312750. -
A new TableGen backend has been added to generate StmtDataCollectors.inc. r312634.
-
clang-format learned to understand C++17 structured bindings. r312723.