Alex Bradbury via llvm-dev
2017-Jul-10 17:29 UTC
[llvm-dev] LLVM Weekly - #184, Jul 10th 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).