SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. Entropic: Boosting LibFuzzer Performance (details)
  2. [StackColoring] When remapping alloca's move the To alloca if the From alloca is before it. (details)
  3. Fix aux-target diagnostics for certain builtins (details)
  4. [lldb/Reproducers] Move connection logic into replay server (NFC) (details)
  5. Silence warnings around int/float conversions. (details)
  6. [mlir][StandardToSPIRV] Fix signedness issue in bitwidth emulation. (details)
  7. [LVI] Don't require DominatorTree in LVI (NFC) (details)
  8. [lldb/Properties] Move OSPluginReportsAllThreads from Target to Process (details)
  9. [SVE] Add specialized getters to derived vector types (details)
  10. [IR] Simplify BasicBlock::removePredecessor. NFCI. (details)
  11. [PhaseOrdering] make different pass manager runs equivalent; NFC (details)
  12. [PhaseOrdering] add tests for x86 horizontal math ops (PR41813); NFC (details)
Commit e2e38fca64e49d684de0b100437fe2f227f8fcdd by mascasa
Entropic: Boosting LibFuzzer Performance

Summary:
This is collaboration between Marcel Boehme @ Monash, Australia and Valentin Manès plus Sang Kil Cha @ KAIST, South Korea.

We have made a few modifications to boost LibFuzzer performance by changing how weights are assigned to the seeds in the corpus. Essentially, seeds that reveal more "information" about globally rare features are assigned a higher weight. Our results on the Fuzzer Test Suite seem quite promising. In terms of bug finding, our Entropic patch usually finds the same errors much faster and in more runs. In terms of coverage, our version Entropic achieves the same coverage in less than half the time for the majority of subjects. For the lack of space, we shared more detailed performance results directly with @kcc. We'll publish the preprint with all the technical details as soon as it is accepted. Happy to share if you drop us an email.

There should be plenty of opportunities to optimise further. For instance, while Entropic achieves the same coverage in less than half the time, Entropic has a much lower #execs per second. We ran the perf-tool and found a few performance bottlenecks.

Thanks for open-sourcing LibFuzzer (and the entire LLVM Compiler Infrastructure)! This has been such a tremendous help to my research.

Patch By: Marcel Boehme

Reviewers: kcc, metzman, morehouse, Dor1s, vitalybuka

Reviewed By: kcc

Subscribers: dgg5503, Valentin, llvm-commits, kcc

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73776
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerDriver.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerFlags.def
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerOptions.h
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerCorpus.h
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerLoop.cpp
The file was modifiedcompiler-rt/lib/fuzzer/tests/FuzzerUnittest.cpp
Commit ccba60a784e72fd6cd35cfb6f6290fa553395027 by craig.topper
[StackColoring] When remapping alloca's move the To alloca if the From alloca is before it.

If To is after From its possible that there's a use of From
between them.

Fixes issue reported here http://lists.llvm.org/pipermail/llvm-dev/2020-May/141421.html

Differential Revision: https://reviews.llvm.org/D80101
The file was addedllvm/test/CodeGen/X86/StackColoring-use-between-allocas.mir
The file was modifiedllvm/lib/CodeGen/StackColoring.cpp
Commit 81a73fde5cea304d31294fd26c2f051f1685e97c by erich.keane
Fix aux-target diagnostics for certain builtins

When I fixed the targets specific builtins to make sure that aux-targets
are checked, it seems I didn't consider cases where the builtins check
the target info for further info.  This patch bubbles the target-info
down to the individual checker functions to ensure that they validate
against the aux-target as well.

For non-aux-target invocations, this is an NFC.
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/Sema/check-aux-builtins.c
Commit 225f241c84469d7d29c9ef626558c302134c48ff by Jonas Devlieghere
[lldb/Reproducers] Move connection logic into replay server (NFC)

Move the logic for connecting to the replay server into the replay
server itself, so it can be reused outside of ProcessGDBRemote.
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp
Commit 15ee8a3a58223b48afbe33cb60084f864ef20889 by echristo
Silence warnings around int/float conversions.
The file was modifiedlldb/unittests/DataFormatter/MockTests.cpp
The file was modifiedlldb/source/Plugins/Language/ObjC/Cocoa.cpp
Commit 520a5702680ea0b5059193a0d4ad52c217da7325 by hanchung
[mlir][StandardToSPIRV] Fix signedness issue in bitwidth emulation.

Summary:
Previously, after applying the mask, a negative number would convert to a
positive number because the sign flag was forgotten. This patch adds two more
shift operations to do the sign extension. This assumes that we're using two's
complement.

This patch applies sign extension unconditionally when loading a unspported integer width, and it relies the pattern to do the casting because the signedness semantic is carried by operator itself.

Differential Revision: https://reviews.llvm.org/D79753
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
Commit 5fae613a4fd3c7aed075a98761bbfde8855b5c3b by nikita.ppv
[LVI] Don't require DominatorTree in LVI (NFC)

After D76797 the dominator tree is no longer used in LVI, so we
can remove it as a pass dependency, and also get rid of the
dominator tree enabling/disabling logic in JumpThreading.

Apart from cleaning up the code, this also clarifies LVI
cache consistency, in that the LVI cache can no longer
depend on whether the DT was or wasn't enabled due to
pending DT updates at any given time.

Differential Revision: https://reviews.llvm.org/D76985
The file was modifiedllvm/test/Analysis/LazyValueAnalysis/invalidation.ll
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/LazyValueInfo.h
The file was modifiedllvm/lib/Transforms/Utils/LowerSwitch.cpp
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
Commit 018e5a96eebd712dd743589327354d528865f9b6 by Jonas Devlieghere
[lldb/Properties] Move OSPluginReportsAllThreads from Target to Process

This is what Jim wanted originally.

rdar://problem/61236293

Differential revision: https://reviews.llvm.org/D80159
The file was modifiedlldb/source/Target/Target.cpp
The file was modifiedlldb/include/lldb/Target/Target.h
The file was modifiedlldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
The file was modifiedlldb/include/lldb/Target/Process.h
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/source/Target/TargetProperties.td
Commit 0d736f467ddb6b6f0189703f015c248c41be7cf3 by ctetreau
[SVE] Add specialized getters to derived vector types

Summary:
Add versions of the specialized getters in base VectorType to the
derived vector types that return derived pointers. This reduces the
amount of casting you need to do when working with derived vectors

Reviewers: efriedma, david-arm, fpetrogalli, craig.topper

Reviewed By: david-arm

Subscribers: tschuett, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80026
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
Commit 59f49f7ee7f3397e000f7e11facb4a5605cd1cab by jay.foad
[IR] Simplify BasicBlock::removePredecessor. NFCI.

Differential Revision: https://reviews.llvm.org/D80141
The file was modifiedllvm/include/llvm/IR/BasicBlock.h
The file was modifiedllvm/lib/IR/BasicBlock.cpp
Commit 6d953693fe667339403083d0127e9d12909b11da by spatel
[PhaseOrdering] make different pass manager runs equivalent; NFC

I don't see any difference from the 'avx' setting, so leaving that
off until there's a need for it.
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/addsub.ll
Commit 348da7eec3ed70c3efd0b5cd7929d6cc2257f2a1 by spatel
[PhaseOrdering] add tests for x86 horizontal math ops (PR41813); NFC
The file was addedllvm/test/Transforms/PhaseOrdering/X86/horiz-math.ll