Monday, March 24, 2014

Welcome to the twelfth 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 http://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

You may recall my previous coverage of efforts by Philip Reames and others
to introduce necessary changes to LLVM to support a precise relocating garbage
collector. Previously he described the issues of using the llvm.gcroot
intrinsic.
True to his word, he's followed up that post with a description of 'late
safepoint
placement',
which is the approach Philip and his colleagues are working on to address the
problem. More updates are promised over the next few weeks.

musl libc 1.0.0 has been released.
It is an MIT-licensed libc aiming to compete with glibc. "musl is a new
general-purpose implementation of the C library. It is lightweight, fast,
simple, free, and aims to be correct in the sense of standards-conformance and
safety."

On the mailing lists

David Given is working on an architecture that uses integer registers to
store floating point values, and asks for
advice on how
to represent this in tablegen without being stopped dead by "cannot infer all
types in pattern" errors.

Discussion about a binary format for instrumentation-based profiling data
has
continued,
with the suggestion that the format written out by instrumentation need not be
the same as the format read back by the compiler (it could be transformed by
other tools). Justin Bogner has detailed proposed
requirements
for these formats.

Tim Hill started an interesting discussion by sharing his experiences from
switching to
Clang. Among
the positives were excellent errors, the static analyzer, compatibility, and
quality of generated code. The main negative is the lack of documentation for
many compiler options. There's general agreement in the responses that this is
a problem that should be fixed in the (hopefully not too distant) future.

Scheduling annotations have been added to NEON AArch64 instructions.
r204505.

Clang commits

Counters used in instrumentation-based profiling are now represented in a
static array. This is the first commit of a larger project to reduce runtime
overhead (initialization in particular) for instrumentation-based profiling.
r204080. Other commits for
instrumentation-based profiling include
r204186,
r204379,
r204390. There's a matching set
of commits in compiler-rt.