[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
<http://llvmweekly.org/issue/184>.
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
released](http://lists.llvm.org/pipermail/llvm-announce/2017-July/000074.html).
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
updated.
## On the mailing lists
* Andrew Kaylor kicked off a discussion on [how to handle a particular case of
C undefined behaviour in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115053.html).
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
unattractive](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115200.html).
* 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
[proposed](http://lists.llvm.org/pipermail/llvm-dev/2017-July/114944.html)
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.
[r307079](https://reviews.llvm.org/rL307079),
[r307133](https://reviews.llvm.org/rL307133),
[r307159](https://reviews.llvm.org/rL307159).
* 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.
[r307148](https://reviews.llvm.org/rL307148).
* A Safepoint IR Verifier has been added, to help finding GC relocation bugs.
[r307112](https://reviews.llvm.org/rL307112).
* The opt-viewer tools will now be installed to `<install>/share/opt-viewer/`.
[r307285](https://reviews.llvm.org/rL307285).
* 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.
[r307045](https://reviews.llvm.org/rL307045).
* The MakeSmartPtrFunction option allows the customisation of the output of
the modernize-make-shared/unique checks.
[r307130](https://reviews.llvm.org/rL307130).
## 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.
[r307092](https://reviews.llvm.org/rL307092).
More information about the llvm-dev
mailing list