[llvm-dev] LLVM Weekly - #184, Jul 10th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 10 10:29:27 PDT 2017

LLVM Weekly - #184, Jul 10th 2017

If you prefer, you can read a HTML version of this email at

Welcome to the one hundred and eighty-forth 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](http://asbradbury.org). 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

Pascal Cuoq and John Regehr have authored a rather epic blog post - [Undefined
Behaviour in 2017](https://blog.regehr.org/archives/1520). This summarises the
current state of undefined behviour in C and C++, areas where tools can help
and areas where they currently fall short.

LLVM 4.0.1 [has been
This is the first bug-fix release from the LLVM 4.0.x branch.

Stefan Gränitz's [JitFromScratch
repository](https://github.com/weliveindetail/jitfromscratch) contains a
collection of examples on building a JIT using LLVM and ORC, and has just been

## On the mailing lists

* Andrew Kaylor kicked off a discussion on [how to handle a particular case of
C undefined behaviour in
Specifically, cases where code does `p = (char*)0 + n` to create a pointer
that is later dereferenced. Chris Lattner [prefers proposed solution
3](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115056.html), which
introduces special-casing in the frontend to generate valid IR for this idiom.
David Majnemer shared a a well-written argument on [why addressing this
problem at the IR level is

* Mandeep Singh Grang has shared an update on [efforts to uncover and fix
sources of non-determinism in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115025.html), and
proposed a set of next steps.

* Quentin Colombet has [proposed making GlobalISel a non-optional part of the
build](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115089.html). As he
points out, it has been built by default for the last 6 months.

* Tom Stellard has
adding number of new fields to bugzilla, designed to track bug fixes and
merges into the stable release branch.

## LLVM commits

* The GlobalISel TableGen'ned matcher and emitter has been converted to a
state machine, reducing compile time and memory allocations.

* A spelling corrector can now be used for assembler input, suggesting similar
instruction mnemonics if an invalid mnemonic is input. So far this is only
used by the ARM backend.

* A Safepoint IR Verifier has been added, to help finding GC relocation bugs.

* The opt-viewer tools will now be installed to `<install>/share/opt-viewer/`.

* The LoopStrengthReduce pass has gained new heuristics to narrow the search
space. [r307269](https://reviews.llvm.org/rL307269).

## Clang commits

* The `-Wcast-qual` warning has been implemented for C++, providing warnings
for C-style casts just as GCC's `Wcast-qual` does.

* The MakeSmartPtrFunction option allows the customisation of the output of
the modernize-make-shared/unique checks.

## Other project commits

* The Google Benchmark library and some initial XRay microbenchmarks have been
added to the LLVM test suite. [r307017](https://reviews.llvm.org/rL307017).

* You probably shouldn't be running the LLD test suite as root, but now you
can without worrying about /dev/null being unlinked.

More information about the llvm-dev mailing list