FailedChanges

Summary

  1. TableGen: change a couple of member names to clarify their use. (details)
  2. [LV][ARM] Add preferInloopReduction target hook. (details)
  3. [DSE] Precommit test case with loop carried dependence. (details)
  4. [DSE] Bail out on MemoryPhis when deleting stores at end of function. (details)
  5. [DSE] Adjust coroutines test after e082dee2b588. (details)
  6. [SelectionDAG][X86][ARM][AArch64] Add ISD opcode for __builtin_parity. Expand it to shifts and xors. (details)
  7. [MinGW] Use lib prefix for libraries (details)
  8. [MinGW][clang-shlib] Build by default on MinGW (details)
  9. [MinGW][libclang] Allow simultaneous shared and static lib (details)
  10. [InstCombine] Add extra use tests for abs canonicalization (NFC) (details)
  11. [gcov] Clean up by getting llvm.dbg.cu earlier (details)
  12. [gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering (details)
  13. Revert "[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering" (details)
  14. Change range operator from deprecated '-' to '...' (details)
  15. Update TableGen test files to use the new '...' range punctuation. (details)
  16. [ARM] Add additional vecreduce float legalization test (NFC) (details)
  17. [gcov] Process .gcda immediately after the accompanying .gcno instead of doing all .gcda after all .gcno (details)
  18. [lld][WebAssembly] Error on import/export of mutable global without `mutable-globals` feature (details)
  19. [ARM] Add tests for fmin/max + inf folds (NFC) (details)
  20. [lld][WebAssembly] Add initial support for -Map/--print-map (details)
  21. [gn build] Port cc2da5554b5 (details)
  22. [Hexagon] Avoid widening vectors with non-HVX element types (details)
  23. [X86] Use ISD::PARITY directly instead of emitting CTPOP and AND from combineHorizontalPredicateResult. (details)
  24. [LegalizeTypes] Remove a few cases from SplitVectorOperand that should never happen. NFC (details)
  25. [Docs] Fix --print-supported-cpus option rendering (details)
  26. [llvm-cov gcov] Improve accuracy when some edges are not measured (details)
  27. [gcov] Assign names to some types and loaded values used in @__llvm_internal* (details)
  28. [gcov] Add spanning tree optimization (details)
  29. [gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass (details)
  30. Reland "[PowerPC] Implement instruction clustering for stores" (details)
  31. [X86] Add test cases for PR11210 (details)
  32. [ARM] Add tests for fmin/max with largest/smallest float (NFC) (details)
  33. [CGP] Prevent optimizePhiType from iterating forever (details)
  34. [DAGCombiner] Propagate FMF flags in FMA folding (details)
  35. [ASTImporter] Add basic support for comparing Stmts and compare function bodies (details)
  36. [SelectionDAG] Remove default for 'unsigned' Alignment for getLoad/getStore/getExtLoad/getTruncStore. Add default for MaybeAlign version. NFCI (details)
  37. GCOVProfiling: Avoid use-after-move (details)
  38. Correct end-of-namespace comment to be clang-tidy/LLVM style appropriate (details)
  39. PPCInstrInfo: Fix readability-inconsistent-declaration-parameter-name clang-tidy warning (details)
  40. [ARM] Add some fmin/fmax tests with commuted operands (NFC) (details)
  41. [llvm-cov gcov] Add -r (--relative-only) && -s (--source-prefix) (details)
  42. [llvm-cov gcov][test] Unsupport Windows (details)
  43. [JITLink] Improve formatting for Edge, Block and Symbol debugging output. (details)
Commit 8ce75e2778daf0492421fb524986756ef7e84b2b by paul
TableGen: change a couple of member names to clarify their use.
The file was modifiedllvm/include/llvm/TableGen/Record.h (diff)
The file was modifiedllvm/lib/TableGen/Record.cpp (diff)
Commit 74760bb00fb9b78a2fe12242716bd6976b8c3566 by david.green
[LV][ARM] Add preferInloopReduction target hook.

This allows the backend to tell the vectorizer to produce inloop
reductions through a TTI hook.

For the moment on ARM under MVE this means allowing integer add
reductions of the correct size. In the future this can include integer
min/max too, under -Os.

Differential Revision: https://reviews.llvm.org/D75512
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h (diff)
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp (diff)
Commit 3de9e3e493baed93e1aa0e99b04a0b11f370a939 by flo
[DSE] Precommit test case with loop carried dependence.
The file was addedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll
Commit e082dee2b5885bba65e20b22b088bcaca5546984 by flo
[DSE] Bail out on MemoryPhis when deleting stores at end of function.

When deleting stores at the end of a function, we have to do PHI
translation, otherwise we might miss reads in different iterations of a
loop. See multiblock-loop-carried-dependence.ll for details.

This fixes a mis-compile and surprisingly also increases the number of
eliminated stores from 26047 to 26572 for MultiSource/SPEC2000/SPEC2006
on X86 with -O3 -flto. This is most likely because we save budget by not
exploring through MemoryPhis, which are less likely to result in valid
candidates for elimination.

The issue was reported post-commit for fb109c42d91c.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll (diff)
Commit d85ac6d577ac5d4a7812e6cd3b0171f5e356c805 by flo
[DSE] Adjust coroutines test after e082dee2b588.
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll (diff)
Commit ad3d6f993d9f7ff3a54c5a716ccc918026fa0252 by craig.topper
[SelectionDAG][X86][ARM][AArch64] Add ISD opcode for __builtin_parity. Expand it to shifts and xors.

Clang emits (and (ctpop X), 1) for __builtin_parity. If ctpop
isn't natively supported by the target, this leads to poor codegen
due to the expansion of ctpop being more complex than what is needed
for parity.

This adds a DAG combine to convert the pattern to ISD::PARITY
before operation legalization. Type legalization is updated
to handled Expanding and Promoting this operation. If after type
legalization, CTPOP is supported for this type, LegalizeDAG will
turn it back into CTPOP+AND. Otherwise LegalizeDAG will emit a
series of shifts and xors followed by an AND with 1.

I've avoided vectors in this patch to avoid more legalization
complexity for this patch.

X86 previously had a custom DAG combiner for this. This is now
moved to Custom lowering for the new opcode. There is a minor
regression in vector-reduce-xor-bool.ll, but a follow up patch
can easily fix that.

Fixes PR47433

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87209
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff)
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/parity.ll (diff)
The file was addedllvm/test/CodeGen/AArch64/parity.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (diff)
The file was addedllvm/test/CodeGen/ARM/parity.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
Commit cc76965b19085519278bff1052059e03769b71e8 by martin
[MinGW] Use lib prefix for libraries

In MinGW world, UNIX like lib prefix is preferred for the libraries.
This patch adjusts CMake files to do that.

Differential Revision: https://reviews.llvm.org/D87517
The file was modifiedclang/tools/libclang/CMakeLists.txt (diff)
The file was modifiedllvm/tools/llvm-config/llvm-config.cpp (diff)
The file was modifiedlldb/source/API/CMakeLists.txt (diff)
The file was modifiedllvm/cmake/modules/AddLLVM.cmake (diff)
Commit bb613044b6800b8ccc238232677f905bda423819 by martin
[MinGW][clang-shlib] Build by default on MinGW

It builds without errors and makes possible to use
CLANG_LINK_CLANG_DYLIB=1.

Differential Revision: https://reviews.llvm.org/D87547
The file was modifiedclang/tools/CMakeLists.txt (diff)
Commit 7da941939902768af25ffa45149695a0a5f15951 by martin
[MinGW][libclang] Allow simultaneous shared and static lib

It builds fine for MinGW on Windows.

Differential Revision: https://reviews.llvm.org/D87539
The file was modifiedclang/tools/libclang/CMakeLists.txt (diff)
Commit c34a99fe589b870354c9a7863b79d882c74f7d50 by nikita.ppv
[InstCombine] Add extra use tests for abs canonicalization (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/abs-1.ll (diff)
Commit c55c14837e148b817de989106560328219df342b by i
[gcov] Clean up by getting llvm.dbg.cu earlier
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit 412c9c0bf2a8ccbda2d925575891a51ef5df846e by i
[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit 7d3825ed954aa1578790b96a8a544d034ea112f6 by i
Revert "[gcov] emitProfileArcs: iterate over GCOVFunction's instead of Function's to avoid duplicated filtering"

This reverts commit 412c9c0bf2a8ccbda2d925575891a51ef5df846e.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit e8e3693ceaa1afe267f21d2ba8d9565ea8fe7c12 by paul
Change range operator from deprecated '-' to '...'
The file was modifiedllvm/test/TableGen/AllowDuplicateRegisterNames.td (diff)
The file was modifiedllvm/test/TableGen/BitsInit.td (diff)
The file was modifiedllvm/test/TableGen/BigEncoder.td (diff)
The file was modifiedllvm/test/TableGen/BitOffsetDecoder.td (diff)
Commit 93b4f8538267e620de4a36e7cf0abc0d4f8d7c10 by paul
Update TableGen test files to use the new '...' range punctuation.
The file was modifiedllvm/test/TableGen/list-element-bitref.td (diff)
The file was modifiedllvm/test/TableGen/ForeachLoop.td (diff)
The file was modifiedllvm/test/TableGen/cond-let.td (diff)
The file was modifiedllvm/test/TableGen/defset.td (diff)
The file was modifiedllvm/test/TableGen/DAGDefaultOps.td (diff)
The file was modifiedllvm/test/TableGen/dag-isel-regclass-emit-enum.td (diff)
The file was modifiedllvm/test/TableGen/UnsetBitInit.td (diff)
The file was modifiedllvm/test/TableGen/range-lists.td (diff)
The file was modifiedllvm/test/TableGen/simplify-patfrag.td (diff)
The file was modifiedllvm/test/TableGen/trydecode-emission3.td (diff)
The file was modifiedllvm/test/TableGen/HwModeEncodeDecode.td (diff)
The file was modifiedllvm/test/TableGen/JSON.td (diff)
The file was modifiedllvm/test/TableGen/BitsInit.td (diff)
The file was modifiedllvm/test/TableGen/ifstmt.td (diff)
The file was modifiedllvm/test/TableGen/foreach-variable-range.td (diff)
The file was modifiedllvm/test/TableGen/if.td (diff)
The file was modifiedllvm/test/TableGen/ListSlices.td (diff)
Commit bdd1eba37b64e64c2d93d3e79223b5933d631447 by nikita.ppv
[ARM] Add additional vecreduce float legalization test (NFC)
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll (diff)
Commit d6fadc49e3d7eb0977bca3ff92bf156bd059fcd4 by i
[gcov] Process .gcda immediately after the accompanying .gcno instead of doing all .gcda after all .gcno

i.e. change the work flow from

* .gcno for function A
* .gcno for function B
* .gcno for function C
* .gcda for function A
* .gcda for function B
* .gcda for function C

to

* .gcno for function A
* .gcda for function A
* .gcno for function B
* .gcda for function B
* .gcno for function C
* .gcda for function C

Currently there is duplicate logic in .gcno & .gcda processing: how functions
are filtered, which edges are instrumented, etc. This refactor enables simplification.

Since we always process .gcno, in -fprofile-arcs -fno-test-coverage mode,
__llvm_internal_gcov_emit_function_args.0 will have non-zero checksums.
The file was modifiedclang/test/CodeGen/code-coverage.c (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit 04febd30a8dab3ff4b6e6032f1a1a9f4725f8267 by sbc
[lld][WebAssembly] Error on import/export of mutable global without `mutable-globals` feature

Also add the +mutable-globals features in clang when
building with `-fPIC` since the linker will generate mutable
globals imports and exports in that case.

Differential Revision: https://reviews.llvm.org/D87537
The file was modifiedlld/test/wasm/Inputs/undefined-globals.s (diff)
The file was modifiedlld/test/wasm/shared.ll (diff)
The file was addedlld/test/wasm/mutable-globals.s
The file was modifiedclang/test/Driver/wasm-toolchain.c (diff)
The file was modifiedlld/test/wasm/emit-relocs-fpic.s (diff)
The file was modifiedlld/test/wasm/pie.ll (diff)
The file was modifiedclang/lib/Driver/ToolChains/WebAssembly.cpp (diff)
The file was modifiedlld/test/wasm/gc-imports.s (diff)
The file was modifiedlld/wasm/Writer.cpp (diff)
Commit c2f8bc986fb39f6a72aafd5dd0d31ec29ad8ce9b by nikita.ppv
[ARM] Add tests for fmin/max + inf folds (NFC)
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll (diff)
Commit cc2da5554b5ee5d5939222af263699a9d0bf2049 by sbc
[lld][WebAssembly] Add initial support for -Map/--print-map

Differential Revision: https://reviews.llvm.org/D77187
The file was addedlld/test/wasm/map-file.s
The file was addedlld/wasm/MapFile.h
The file was modifiedlld/wasm/Options.td (diff)
The file was modifiedlld/test/ELF/map-file.s (diff)
The file was modifiedlld/wasm/Driver.cpp (diff)
The file was modifiedlld/wasm/Symbols.h (diff)
The file was modifiedlld/wasm/OutputSections.cpp (diff)
The file was modifiedlld/wasm/OutputSections.h (diff)
The file was modifiedlld/wasm/Config.h (diff)
The file was modifiedlld/wasm/CMakeLists.txt (diff)
The file was addedlld/wasm/MapFile.cpp
The file was modifiedlld/test/wasm/early-exit-for-bad-paths.s (diff)
The file was modifiedlld/wasm/InputChunks.h (diff)
The file was modifiedlld/wasm/Writer.cpp (diff)
Commit 70daa353e2ae722beddbab02f9a34988c855f318 by llvmgnsyncbot
[gn build] Port cc2da5554b5
The file was modifiedllvm/utils/gn/secondary/lld/wasm/BUILD.gn (diff)
Commit 9d300bc8d2f3cdbd7f2d7cea9fa3667c26840ad0 by kparzysz
[Hexagon] Avoid widening vectors with non-HVX element types
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-widen-truncate-illegal-elem.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (diff)
The file was modifiedllvm/lib/Target/Hexagon/HexagonSubtarget.h (diff)
Commit 758732a34ed005cb135afcf14c9750a5483a49d3 by craig.topper
[X86] Use ISD::PARITY directly instead of emitting CTPOP and AND from combineHorizontalPredicateResult.

We have a PARITY ISD node now so might as well use it. It will
get re-expanded later.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 61d29e0dff0e93f3fa1382fb177634840844b273 by craig.topper
[LegalizeTypes] Remove a few cases from SplitVectorOperand that should never happen. NFC

CTTZ, CTLZ, CTPOP, and FCANONICALIZE all have the same input and
output types so the operand should have already been legalized when the
result type was legalized.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)
Commit 0fb2203cd6c287e7438b7ac2571645066c63eeb6 by joker.eph
[Docs] Fix --print-supported-cpus option rendering

Adds link/code sample to avoid rendering two dashes as non-ASCII "en dash".
Also make wording a complete sentence.

Reviewed By: nickdesaulniers, tmfink

Differential Revision: https://reviews.llvm.org/D85596
The file was modifiedclang/docs/CommandGuide/clang.rst (diff)
Commit 8cf1ac97cec654923b4f80ad11506bf06ec34f65 by i
[llvm-cov gcov] Improve accuracy when some edges are not measured

Also guard against infinite recursion if GCOV_ARC_ON_TREE edges contain a cycle.
The file was modifiedllvm/lib/ProfileData/GCOV.cpp (diff)
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h (diff)
The file was modifiedllvm/test/tools/llvm-cov/gcov-8.c (diff)
The file was modifiedcompiler-rt/test/profile/gcov-basic.c (diff)
Commit f086e85eea94a51eb42115496ac5d24f07bc8791 by i
[gcov] Assign names to some types and loaded values used in @__llvm_internal*

This makes the generated IR much more readable.
The file was modifiedclang/test/CodeGen/code-coverage.c (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit 63182c2ac0b643a60d397274e8a31166fc7243fa by i
[gcov] Add spanning tree optimization

gcov is an "Edge Profiling with Edge Counters" application according to
Optimally Profiling and Tracing Programs (1994).

The minimum number of counters necessary is |E|-(|V|-1). The unmeasured edges
form a spanning tree. Both GCC --coverage and clang -fprofile-generate leverage
this optimization. This patch implements the optimization for clang --coverage.
The produced .gcda files are much smaller now.
The file was modifiedcompiler-rt/test/profile/gcov-dump-and-remove.c (diff)
The file was modifiedllvm/test/Transforms/GCOVProfiling/atomic-counter.ll (diff)
The file was modifiedcompiler-rt/test/profile/Posix/gcov-fork.c (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
The file was addedllvm/test/Transforms/GCOVProfiling/split-indirectbr-critical-edges.ll
The file was modifiedclang/test/CodeGen/code-coverage-tsan.c (diff)
Commit 5f4e9bf6416e45eba483a4e5e263749989fdb3b3 by i
[gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass

This is weird.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit bec81dc67d9348dad0ea60a9b8804d1413aefe98 by qiucofan
Reland "[PowerPC] Implement instruction clustering for stores"

Commit 3c0b3250 introduced store fusion for PowerPC target, but it
brought failure under UB sanitizer and was reverted. This patch fixes
them.
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPC.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetMachine.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h (diff)
The file was addedllvm/test/CodeGen/PowerPC/fusion-load-store.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h (diff)
Commit e2dee9af8db645fd3c0351da91d3cb09c1dcdd5d by llvm-dev
[X86] Add test cases for PR11210

Demonstrates that redundant masked stores may be removed, as long as we're able to replace the AVX/AVX2 masked store with a generic masked store (constant mask or sign-extended bool vector mask).
The file was addedllvm/test/Transforms/PhaseOrdering/X86/masked-memory-ops.ll
Commit 2c85f5e642fb599f77aac0de22316c922cfd7cbb by nikita.ppv
[ARM] Add tests for fmin/max with largest/smallest float (NFC)
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll (diff)
Commit 9237fde48139400764377eb73e7e5d3bc5b7fffc by david.green
[CGP] Prevent optimizePhiType from iterating forever

The recently added optimizePhiType algorithm had no checks to make sure
it didn't continually iterate backward and forth between float and int
types. This means that given an input like store(phi(bitcast(load))), we
could convert that back and forth to store(bitcast(phi(load))). This
particular case would usually have been simplified to a different load
type (folding the bitcast into the load) before CGP, but other cases can
occur. The one that came up was phi(bitcast(phi)), where the two phi's
of different types were bitcast between. That was not helped by a dead
bitcast being kept around which could make conversion look profitable.

This adds an extra check of the bitcast Uses or Defs, to make sure that
at least one is grounded and will not end up being converted back. It
also makes sure that dead bitcasts are removed, and there is a minor
change to include newly created Phi nodes in the Visited set so that
they do not need to be revisited.

Differential Revision: https://reviews.llvm.org/D82676
The file was modifiedllvm/test/CodeGen/AArch64/convertphitype.ll (diff)
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp (diff)
Commit a4c535198643d1541b19f37a468c885a7baa7605 by qiucofan
[DAGCombiner] Propagate FMF flags in FMA folding

DAG combiner folds (fma a 1.0 b) into (fadd a b) but the flag isn't
propagated into new fadd. This patch fixes that.

Some code in visitFMA is redundant and such support for vector constants
is missing. Need follow-up patch to clean.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D87037
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/fma-combine.ll (diff)
Commit c0bcd11068fc13e45b253c6c315882097f94c121 by Raphael Isemann
[ASTImporter] Add basic support for comparing Stmts and compare function bodies

Right now the ASTImporter assumes for most Expr nodes that they are always equal
which leads to non-compatible declarations ending up being merged. This patch
adds the basic framework for comparing Stmts (and with that also Exprs) and
implements the custom checks for a few Stmt subclasses. I'll implement the
remaining subclasses in follow up patches (mostly because there are a lot of
subclasses and some of them require further changes like having GNU language in
the testing framework)

The motivation for this is that in LLDB we try to import libc++ source code and
some of the types we are importing there contain expressions (e.g. because they
use `enable_if<expr>`), so those declarations are currently merged even if they
are completely different (e.g. `enable_if<value> ...` and `enable_if<!value>
...` are currently considered equal which is clearly not true).

Reviewed By: martong, balazske

Differential Revision: https://reviews.llvm.org/D87444
The file was modifiedclang/include/clang/AST/ASTStructuralEquivalence.h (diff)
The file was modifiedclang/lib/AST/ASTStructuralEquivalence.cpp (diff)
The file was modifiedclang/unittests/AST/StructuralEquivalenceTest.cpp (diff)
Commit 8889faaed0b7c8545b67b040c380b983264ebc67 by craig.topper
[SelectionDAG] Remove default for 'unsigned' Alignment for getLoad/getStore/getExtLoad/getTruncStore. Add default for MaybeAlign version. NFCI

We want to remove the unsigned signatures eventually. This change
migrates any that don't explicitly pass an alignment.
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h (diff)
Commit 6e06f1cd0816b03d9336083667a0c71760d6b99f by dblaikie
GCOVProfiling: Avoid use-after-move

Turns out this was use-after-move of function_ref, which is trivially
copyable and movable, so the move did nothing and use after move was
safe.

But since this function_ref is being copied into a std::function, change
the function_ref to be std::function to avoid extra layers of type
erasure indirection - and then it's a real use after move, and fix that
by referring to the moved-to member variable rather than the moved-from
parameter.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (diff)
Commit 7940af02baa27e23ebbd9cd09b24ef1b24ea8cec by dblaikie
Correct end-of-namespace comment to be clang-tidy/LLVM style appropriate
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h (diff)
Commit ce89eeee16dd1e7ca6eead3b9d7f256ca583f6e1 by dblaikie
PPCInstrInfo: Fix readability-inconsistent-declaration-parameter-name clang-tidy warning

Reduces the chance of confusion when calling the function with
autocomplete (will show the more accurate/informative variable name),
etc.
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h (diff)
Commit cb3e1dd6c31ef0e0c83dcd1b4ef0b65a8b75a673 by nikita.ppv
[ARM] Add some fmin/fmax tests with commuted operands (NFC)

As well as vector commuted operands.
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll (diff)
Commit b2c32c90bab09a6e2c1f370429db26017a182143 by i
[llvm-cov gcov] Add -r (--relative-only) && -s (--source-prefix)

gcov 4.7 introduced the two options.
https://sourceware.org/pipermail/gcc-patches/2011-November/328782.html

-r only dumps files with relative paths or absolute paths with the prefix
specified by -s. The two options are useful filtering out system header files.
The file was addedllvm/test/tools/llvm-cov/gcov/relative-only.test
The file was modifiedllvm/lib/ProfileData/GCOV.cpp (diff)
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/abs-path.gcno
The file was modifiedllvm/tools/llvm-cov/gcov.cpp (diff)
The file was modifiedllvm/include/llvm/ProfileData/GCOV.h (diff)
The file was addedllvm/test/tools/llvm-cov/gcov/Inputs/abs-path.gcda
Commit 44664a54483def1692ea75925bfce0053e76bef0 by i
[llvm-cov gcov][test] Unsupport Windows
The file was modifiedllvm/test/tools/llvm-cov/gcov/relative-only.test (diff)
Commit 783ba64a8950768d412555abd52bbc65156d4fb5 by Lang Hames
[JITLink] Improve formatting for Edge, Block and Symbol debugging output.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLink.cpp (diff)