SuccessChanges

Summary

  1. [analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions. (details)
  2. [analyzer] NFC: Move IssueHash to libAnalysis. (details)
  3. [analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis. (details)
  4. [gn build] Port 44b7cf2983b (details)
  5. [gn build] Port b76dc111dd0 (details)
  6. [PowerPC] Add assemble disassemble intrinsics for MMA (details)
  7. [DebugInfo][docs] Document DILabel in LangRef (details)
  8. Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis." (details)
  9. Revert "[analyzer] NFC: Move IssueHash to libAnalysis." (details)
  10. Revert "[analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions." (details)
  11. [MemCpyOpt] Don't shorten memset if destination observable through unwinding (details)
  12. [gn build] Port 662ed9e67ad (details)
  13. [gn build] Port 77bb3ebebbc (details)
  14. [MemCpyOpt] Don't shorten memset if memcpy operands may be the same (details)
  15. [SCEV] BuildConstantFromSCEV(): actually properly handle SExt-of-pointer case (details)
  16. [Statepoints] Update statepoint mir tests. (details)
  17. Revert "DirectoryWatcher: add an implementation for Windows" (details)
  18. [MemCpyOpt] Fix MemorySSA preservation (details)
  19. [mlir][nfc] Add a func to compute numElements of a shape in Std -> LLVM. (details)
  20. [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt (details)
  21. [X86] Add test cases for PR47825. NFC (details)
Commit fd4b3f123d6e64769881e4c6351d5bbbdac30ce3 by Artem Dergachev
[analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions.

The AnalyzerOptions object contains too much information that's
entirely specific to the Analyzer. It is also being referenced by
path diagnostic consumers to tweak their behavior. In order for path
diagnostic consumers to function separately from the analyzer,
make a smaller options object that only contains relevant options.

Differential Revision: https://reviews.llvm.org/D67420
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modifiedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
The file was modifiedclang/include/clang/Analysis/PathDiagnostic.h
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit b76dc111dd02672488df794570d82e3edbbfa5d8 by Artem Dergachev
[analyzer] NFC: Move IssueHash to libAnalysis.

IssueHash is an attempt to introduce stable warning identifiers
that won't change when code around them gets moved around.
Path diagnostic consumers print issue hashes for the emitted diagnostics.

This move will allow us to ultimately move path diagnostic consumers
to libAnalysis.

Differential Revision: https://reviews.llvm.org/D67421
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was removedclang/include/clang/StaticAnalyzer/Core/IssueHash.h
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
The file was addedclang/include/clang/Analysis/IssueHash.h
The file was removedclang/lib/StaticAnalyzer/Core/IssueHash.cpp
The file was addedclang/lib/Analysis/IssueHash.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/lib/Analysis/CMakeLists.txt
Commit 44b7cf2983b6a8373c99a9b254f8c3f944e03f35 by Artem Dergachev
[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis.

With this change, we're more or less ready to allow users outside
of the Static Analyzer to take advantage of path diagnostic consumers
for emitting their warnings in different formats.

Differential Revision: https://reviews.llvm.org/D67422
The file was modifiedclang/include/clang/StaticAnalyzer/Core/Analyses.def
The file was modifiedclang/include/clang/module.modulemap
The file was removedclang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
The file was addedclang/include/clang/Analysis/PathDiagnosticConsumers.h
The file was removedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
The file was modifiedclang/lib/Analysis/CMakeLists.txt
The file was addedclang/lib/Analysis/TextPathDiagnosticConsumer.cpp
The file was addedclang/lib/Analysis/HTMLPathDiagnosticConsumer.cpp
The file was addedclang/lib/Analysis/PlistHTMLPathDiagnosticConsumer.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was addedclang/lib/Analysis/SarifPathDiagnosticConsumer.cpp
The file was addedclang/include/clang/Analysis/PathDiagnosticConsumers.def
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was removedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was addedclang/lib/Analysis/PlistPathDiagnosticConsumer.cpp
The file was removedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was removedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
Commit 2af5ea28af4997428065c9da9b2413ae2095ef99 by llvmgnsyncbot
[gn build] Port 44b7cf2983b
The file was modifiedllvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
Commit bfd9cef70e30b4dd655862735d4cd05001821c7a by llvmgnsyncbot
[gn build] Port b76dc111dd0
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
Commit f3202b30b8e6fea838c595632641e86719ff8264 by saghir
[PowerPC] Add assemble disassemble intrinsics for MMA

This patch adds support for assemble disassemble intrinsics
for MMA.

Reviewed By: bsaleil, #powerpc

Differential Revision: https://reviews.llvm.org/D88739
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was addedllvm/test/CodeGen/PowerPC/mma-intrinsics.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/lib/IR/Function.cpp
Commit 3f2386de6325157324a0dc2ae00ef3db3a144563 by scott.linder
[DebugInfo][docs] Document DILabel in LangRef

Add some minimal documentation for DILabel, originally introduced in
D45024. Update the name and semantics of the `variables:` field in the
documentation for `DISubprogram`; the field is now called
`retainedNodes:` and is a heterogeneous list of `DILocalVariable` and
`DILabel`.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D89082
The file was modifiedllvm/docs/LangRef.rst
Commit 77bb3ebebbca13f0648beb433fbd1b06ba95a19c by Artem Dergachev
Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis."

This reverts commit 44b7cf2983b6a8373c99a9b254f8c3f944e03f35.
The file was removedclang/lib/Analysis/HTMLPathDiagnosticConsumer.cpp
The file was modifiedclang/include/clang/module.modulemap
The file was modifiedclang/include/clang/StaticAnalyzer/Core/Analyses.def
The file was addedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was modifiedclang/lib/Analysis/CMakeLists.txt
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was removedclang/include/clang/Analysis/PathDiagnosticConsumers.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
The file was addedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was removedclang/lib/Analysis/PlistPathDiagnosticConsumer.cpp
The file was removedclang/lib/Analysis/SarifPathDiagnosticConsumer.cpp
The file was addedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was removedclang/include/clang/Analysis/PathDiagnosticConsumers.def
The file was addedclang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
The file was removedclang/lib/Analysis/PlistHTMLPathDiagnosticConsumer.cpp
The file was removedclang/lib/Analysis/TextPathDiagnosticConsumer.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was addedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Commit 662ed9e67adace3d011f42478bc8bcb1773a2821 by Artem Dergachev
Revert "[analyzer] NFC: Move IssueHash to libAnalysis."

This reverts commit b76dc111dd02672488df794570d82e3edbbfa5d8.
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was modifiedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was removedclang/include/clang/Analysis/IssueHash.h
The file was modifiedclang/lib/Analysis/CMakeLists.txt
The file was removedclang/lib/Analysis/IssueHash.cpp
The file was addedclang/include/clang/StaticAnalyzer/Core/IssueHash.h
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
The file was addedclang/lib/StaticAnalyzer/Core/IssueHash.cpp
Commit 10f1ca99b498347186ec74b01046ad292bde9a4c by Artem Dergachev
Revert "[analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions."

This reverts commit fd4b3f123d6e64769881e4c6351d5bbbdac30ce3.
The file was modifiedclang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was modifiedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/include/clang/Analysis/PathDiagnostic.h
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
Commit 39c39e8a7f09ff8f0385ef9962d1075d9559d139 by nikita.ppv
[MemCpyOpt] Don't shorten memset if destination observable through unwinding

MemCpyOpt can shorten a memset if it is later partially overwritten
by a memcpy. It checks that the destination is not read in between,
but we also need to make sure that the destination cannot be observed
via unwinding.

Differential Revision: https://reviews.llvm.org/D89190
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
Commit 5f335285c16661f9bf05dd629b58545d48533501 by llvmgnsyncbot
[gn build] Port 662ed9e67ad
The file was modifiedllvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
Commit e2c888f571680e98e0daec2b003663311035a607 by llvmgnsyncbot
[gn build] Port 77bb3ebebbc
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
Commit baa3b87015124798c9f0a040e76277e7e74b35b1 by nikita.ppv
[MemCpyOpt] Don't shorten memset if memcpy operands may be the same

If the memcpy operands are the same (which is allowed since D86815)
then the memcpy is effectively a no-op and the partially overlapping
memset is not dead.

Differential Revision: https://reviews.llvm.org/D89192
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/preserve-memssa.ll
Commit e92a8e0c743f83552fac37ecf21e625ba3a4b11e by lebedev.ri
[SCEV] BuildConstantFromSCEV(): actually properly handle SExt-of-pointer case

As being pointed out by @efriedma in
https://reviews.llvm.org/rGaaafe350bb65#inline-4883
of course we can't just call ptrtoint in sign-extending case
and be done with it, because it will zero-extend.

I'm not sure what i was thinking there.

This is very much not an NFC, however looking at the user of
BuildConstantFromSCEV() i'm not sure how to actually show that
it results in a different constant expression.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 1a82705c8d03121ece28c1ccdd8534609844515e by dantrushin
[Statepoints] Update statepoint mir tests.

Update few tests after statepoint format change (D87154).
These tests exercise functionality not affected by the format change,
so they left unchanged.
The file was modifiedllvm/test/CodeGen/X86/statepoint-fixup-invoke.mir
The file was modifiedllvm/test/CodeGen/X86/statepoint-vreg-folding.mir
The file was modifiedllvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir
Commit 0ec1cf13f2a4e31aa2c5ccc665c5fbdcd3a94577 by rnk
Revert "DirectoryWatcher: add an implementation for Windows"

This reverts commit 5d74c435117526616d2c2665f030263b8f60da1b.
The gtest tests appear to be flaky, and are failing in various places.
The file was modifiedclang/lib/DirectoryWatcher/windows/DirectoryWatcher-windows.cpp
The file was modifiedclang/unittests/DirectoryWatcher/CMakeLists.txt
Commit e79ca751fc2bea9f80c4df1eebf61fce3fd4f439 by nikita.ppv
[MemCpyOpt] Fix MemorySSA preservation

moveUp() moves instructions, so we should move the corresponding
memory accesses as well. We should also move the store instruction
itself: Even though we'll end up removing it later, this gives us
a correct MemoryDef to replace.

The implementation is somewhat more complicated than it should be,
because we also handle the case where P does not have a memory
access due to a degnerate AA pipeline. Hopefully, the need for this
will go away in the future, when the rest of the pass is based on
MSSA.

Differential Revision: https://reviews.llvm.org/D88778
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/preserve-memssa.ll
Commit 323fd11df7718e68c37f9220a8e1056bb56778cf by pifon
[mlir][nfc] Add a func to compute numElements of a shape in Std -> LLVM.

For some reason the variable `cumulativeSizeInBytes` in
`getCumulativeSizeInBytes` was actually storing number of elements. I decided
to fix it and refactor the function a bit.

Differential Revision: https://reviews.llvm.org/D89336
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
Commit cd6f40f4326c8251ebb628122bf092ca5536a634 by nikita.ppv
[MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt

This adds an -enable-memcpyopt-memoryssa option that currently does
nothing apart from requiring MSSA as a dependency. The tests are
split to run both with the option disabled and enabled. I went with
this rather than the separate directory DSE uses, as I found it
convenient to have a direct side-by-side comparison of differences.

Differential Revision: https://reviews.llvm.org/D89206
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr29105.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/atomic.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/aggregate-type-crash.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-oversized.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2011-06-02-CallSlotOverwritten.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/merge-into-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset-is-nonzero-type.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/stackrestore.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/mixed-sizes.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/lifetime.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/vscale-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/non-integral.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/nontemporal.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset.ll
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/nonlocal-memcpy-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_deref.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_throw.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-to-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/form-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-to-2x-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/smaller.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-invoke-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/crash.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/profitable-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/align.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/invariant.start.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/process_store.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr37967.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memmove.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-undef.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_aa.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/capturing-func.ll
Commit edf415b5b24572029e096695d5bccb64bcffec57 by craig.topper
[X86] Add test cases for PR47825. NFC
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-256.ll