SuccessChanges

Summary

  1. [PowerPC] Add assemble disassemble intrinsics for MMA (details)
  2. [DebugInfo][docs] Document DILabel in LangRef (details)
  3. Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis." (details)
  4. Revert "[analyzer] NFC: Move IssueHash to libAnalysis." (details)
  5. Revert "[analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions." (details)
  6. [MemCpyOpt] Don't shorten memset if destination observable through unwinding (details)
  7. [gn build] Port 662ed9e67ad (details)
  8. [gn build] Port 77bb3ebebbc (details)
  9. [MemCpyOpt] Don't shorten memset if memcpy operands may be the same (details)
  10. [SCEV] BuildConstantFromSCEV(): actually properly handle SExt-of-pointer case (details)
  11. [Statepoints] Update statepoint mir tests. (details)
  12. Revert "DirectoryWatcher: add an implementation for Windows" (details)
  13. [MemCpyOpt] Fix MemorySSA preservation (details)
  14. [mlir][nfc] Add a func to compute numElements of a shape in Std -> LLVM. (details)
  15. [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt (details)
  16. [X86] Add test cases for PR47825. NFC (details)
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 addedllvm/test/CodeGen/PowerPC/mma-intrinsics.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.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
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td
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 modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
The file was addedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was removedclang/include/clang/Analysis/PathDiagnosticConsumers.h
The file was addedclang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
The file was removedclang/lib/Analysis/PlistPathDiagnosticConsumer.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CMakeLists.txt
The file was modifiedclang/lib/Analysis/CMakeLists.txt
The file was modifiedclang/include/clang/StaticAnalyzer/Core/Analyses.def
The file was removedclang/lib/Analysis/PlistHTMLPathDiagnosticConsumer.cpp
The file was addedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was addedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was removedclang/lib/Analysis/TextPathDiagnosticConsumer.cpp
The file was removedclang/lib/Analysis/HTMLPathDiagnosticConsumer.cpp
The file was addedclang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
The file was modifiedclang/include/clang/module.modulemap
The file was removedclang/lib/Analysis/SarifPathDiagnosticConsumer.cpp
The file was removedclang/include/clang/Analysis/PathDiagnosticConsumers.def
Commit 662ed9e67adace3d011f42478bc8bcb1773a2821 by Artem Dergachev
Revert "[analyzer] NFC: Move IssueHash to libAnalysis."

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

This reverts commit fd4b3f123d6e64769881e4c6351d5bbbdac30ce3.
The file was modifiedclang/include/clang/Analysis/PathDiagnostic.h
The file was modifiedclang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
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/TextDiagnostics.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.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/StaticAnalyzer/Core/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
Commit e2c888f571680e98e0daec2b003663311035a607 by llvmgnsyncbot
[gn build] Port 77bb3ebebbc
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 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-vreg-folding.mir
The file was modifiedllvm/test/CodeGen/X86/statepoint-fixup-invoke.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/test/Transforms/MemCpyOpt/preserve-memssa.ll
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
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/memcpy-to-memset-with-lifetimes.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/nonlocal-memcpy-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-undef.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/atomic.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/non-integral.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memmove.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/aggregate-type-crash.ll
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/nontemporal.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2011-06-02-CallSlotOverwritten.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/profitable-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/invariant.start.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/smaller.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/align.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/mixed-sizes.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/lifetime.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-invoke-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-to-2x-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_deref.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-oversized.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/process_store.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/crash.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_aa.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr29105.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/stackrestore.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset-is-nonzero-type.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-to-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_throw.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/form-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/merge-into-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/vscale-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/capturing-func.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr37967.ll
Commit edf415b5b24572029e096695d5bccb64bcffec57 by craig.topper
[X86] Add test cases for PR47825. NFC
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-512.ll