SuccessChanges

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

Summary

  1. [SVE][LSR] Teach LSR to enable simple scaled-index addressing mode generation for SVE. (details)
  2. Allow signposts to take advantage of deferred string substitution (details)
  3. Remove redundant environment variable XLA_FLAGS. (details)
  4. [compiler-rt][hwasan] Add newline between record_addr lines on frame record dumps (details)
  5. [mlir:OpFormatGen] Add Support for `$_ctxt` in the transformer. (details)
  6. [NFC][sanitizer] clang-format some code (details)
  7. [PowerPC] Export 16 byte load-store instructions (details)
  8. [lld][MachO] Add support for LC_DATA_IN_CODE (details)
  9. [libc++][ci] Enable modules in the Runtimes build (details)
  10. Do not merge LocalInstantiationScope for template specialization (details)
  11. [lld][MachO] Fix UB after D103006 (details)
  12. [NFC][hwasan] Fix "implicitly declaring library function" (details)
  13. [X86] Use EVT::getVectorVT instead of changeVectorElementType in reduceVMULWidth. (details)
  14. [NFC] This is a test commit to check commit access. (details)
  15. [AMDGPU][Libomptarget] Drop dead code related to g_atl_machine (details)
  16. Revert "[NFC] This is a test commit to check commit access." (details)
  17. [ORC-RT] Fix void function handling in the WrapperFunction utility. (details)
  18. [Debug-Info][CodeView] Fix GUID string generation for MSVC generated objects. (details)
  19. [gn build] Port d0a5d8611935 (details)
  20. Support buffers in LinalgFoldUnitExtentDims (details)
  21. [libc] Add a set of elementary operations (details)
  22. Revert "[libc] Add a set of elementary operations" (details)
  23. [builtins] Allow compiling the builtins without libc headers (details)
  24. [IR] Remove forward declaration of GraphTraits from Type.h (details)
  25. [mlir][linalg] Fold linalg.pad_tensor if src type == result type (details)
  26. [clang-format] distinguish function type casts after 21c18d5a04316891110cecc2bf37ce51533decba (details)
  27. [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler (details)
  28. [analyzer] Extract ControlDependencyHandler (details)
  29. [analyzer] Extract NilReceiverHandler (details)
  30. [analyzer] Extract ArrayIndexHandler (details)
  31. [analyzer] Extract InterestingLValueHandler (details)
  32. [analyzer] Extract InlinedFunctionCallHandler (details)
  33. [analyzer] Simplify the process of producing notes for stores (details)
  34. Fix Windows builders after 244601f4720d9cda6e81ea1908f3ce905a4bcb0e (details)
  35. [MCA][InstrBuilder] Check for the presence of flag VariadicOpsAreDefs. (details)
  36. [analyzer] Decouple NoteTag from its Factory (details)
  37. [X86] Schedule-model second (mask) output of GATHER instruction (details)
  38. [lldb] Fix libstdc++ 11's std::unique_ptr affecting LLDB testsuite TestDataFormatterStdUniquePtr.py (details)
  39. ABI breaking changes fixes. (details)
  40. [mlir] Add NegOp to complex dialect. (details)
Commit 1c096bf09ffd3d51665b60942d6bde19e7dbbd5a by huihuiz
[SVE][LSR] Teach LSR to enable simple scaled-index addressing mode generation for SVE.

Currently, Loop strengh reduce is not handling loops with scalable stride very well.

Take loop vectorized with scalable vector type <vscale x 8 x i16> for instance,
(refer to test/CodeGen/AArch64/sve-lsr-scaled-index-addressing-mode.ll added).

Memory accesses are incremented by "16*vscale", while induction variable is incremented
by "8*vscale". The scaling factor "2" needs to be extracted to build candidate formula
i.e., "reg(%in) + 2*reg({0,+,(8 * %vscale)}". So that addrec register reg({0,+,(8*vscale)})
can be reused among Address and ICmpZero LSRUses to enable optimal solution selection.

This patch allow LSR getExactSDiv to recognize special cases like "C1*X*Y /s C2*X*Y",
and pull out "C1 /s C2" as scaling factor whenever possible. Without this change, LSR
is missing candidate formula with proper scaled factor to leverage target scaled-index
addressing mode.

Note: This patch doesn't fully fix AArch64 isLegalAddressingMode for scalable
vector. But allow simple valid scale to pass through.

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D103939
The file was addedllvm/test/CodeGen/AArch64/sve-lsr-scaled-index-addressing-mode.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fold-vscale.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 035217ff515b8ecdc871e39fa840f3cba1b9cec7 by Adrian Prantl
Allow signposts to take advantage of deferred string substitution

One nice feature of the os_signpost API is that format string
substitutions happen in the consumer, not the logging
application. LLVM's current Signpost class doesn't take advantage of
this though and instead always uses a static "Begin/End %s" format
string.

This patch uses variadic macros to allow the API to be used as
intended. Unfortunately, the primary use-case I had in mind (the
LLDB_SCOPED_TIMER() macro) does not get much better from this, because
__PRETTY_FUNCTION__ is *not* a macro, but a static string, so
signposts created by LLDB_SCOPED_TIMER() still use a static "%s"
format string. At least LLDB_SCOPED_TIMERF() works as intended.

This reapplies the previously reverted patch with additional include
order fixes for non-modular builds of LLDB.

Differential Revision: https://reviews.llvm.org/D103575
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
The file was modifiedllvm/lib/Support/Signposts.cpp
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was modifiedllvm/lib/Support/Timer.cpp
The file was modifiedllvm/include/llvm/Support/Signposts.h
The file was modifiedlldb/include/lldb/Utility/Timer.h
The file was modifiedlldb/source/Utility/Timer.cpp
Commit 6c848c28c2f495f97a8fce879bd0624d61272d24 by jacobhegna
Remove redundant environment variable XLA_FLAGS.

If the flag is not set, the script saved_model_aot_compile.py in tensorflow will
default it to the correct value. However, in TF 2.5, the way the value is set in
TensorFlowCompile.cmake file triggers a build error.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D103972
The file was modifiedllvm/cmake/modules/TensorFlowCompile.cmake
Commit 312011899ac3c48a77f4c5a069000f8aa93a8873 by leonardchan
[compiler-rt][hwasan] Add newline between record_addr lines on frame record dumps

If SymbolizePC failes, it's possible for the newline to not be emitted.

Differential Revision: https://reviews.llvm.org/D103845
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp
Commit 853a614864754cd4b000f03a7ab8fbba103d6177 by silvasean
[mlir:OpFormatGen] Add Support for `$_ctxt` in the transformer.

This is useful for "build tuple" type ops. In my case, in npcomp, I have
an op:

```
// Result type is `!torch.tuple<!torch.tensor, !torch.tensor>`.
torch.prim.TupleConstruct %0, %1 : !torch.tensor, !torch.tensor
```

and the context is required for the `Torch::TupleType::get` call (for
the case of an empty tuple).

The handling of these FmtContext's in the code is pretty ad-hoc -- I didn't
attempt to rationalize it and just made a targeted fix. As someone
unfamiliar with the code I had a hard time seeing how to more broadly fix
the situation.

Differential Revision: https://reviews.llvm.org/D104274
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Commit b8919fb0eac15d13c5f56d3d30ce378a588dd78c by Vitaly Buka
[NFC][sanitizer] clang-format some code
The file was modifiedcompiler-rt/lib/asan/asan_rtl.cpp
The file was modifiedcompiler-rt/lib/asan/asan_shadow_setup.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
The file was modifiedcompiler-rt/lib/asan/asan_interceptors.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_errno.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
The file was modifiedcompiler-rt/lib/ubsan/ubsan_platform.h
The file was modifiedcompiler-rt/lib/asan/asan_mapping.h
The file was modifiedcompiler-rt/lib/asan/asan_new_delete.cpp
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
The file was modifiedcompiler-rt/lib/asan/asan_internal.h
The file was modifiedcompiler-rt/lib/asan/asan_malloc_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h
The file was modifiedcompiler-rt/lib/asan/asan_mapping_myriad.h
The file was modifiedcompiler-rt/lib/interception/interception.h
The file was modifiedcompiler-rt/lib/asan/asan_poisoning.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Commit 1c450c3d7ec01d9daaf9f2651da93b01e7790ffd by lkail
[PowerPC] Export 16 byte load-store instructions

Export `lq`, `stq`, `lqarx` and `stqcx.` in preparation for implementing 16-byte lock free atomic operations on AIX.
Add a new register class `g8prc` for these instructions, since these instructions require even-odd register pair.

Reviewed By: nemanjai, jsji, #powerpc

Differential Revision: https://reviews.llvm.org/D103010
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.td
The file was addedllvm/test/CodeGen/PowerPC/ldst-16-byte.mir
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt
The file was modifiedllvm/lib/Target/PowerPC/PPCInstr64Bit.td
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding-bookII.s
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was addedllvm/test/CodeGen/PowerPC/ldst-16-byte-asm.mir
The file was modifiedllvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
The file was modifiedllvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCSchedule.td
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrFormats.td
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.h
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding.s
Commit 928394d10918c97880ef36e4e9853888b0d55207 by alexshap
[lld][MachO] Add support for LC_DATA_IN_CODE

Add first bits for emitting LC_DATA_IN_CODE.

Test plan: make check-lld-macho

Differential revision: https://reviews.llvm.org/D103006
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/test/MachO/local-got.s
The file was addedlld/test/MachO/data-in-code.s
The file was modifiedlld/test/MachO/headerpad.s
The file was modifiedlld/MachO/SyntheticSections.h
Commit 1b87573aaf8ad6a0e1edaac7ab7b34a28f8f41bb by Louis Dionne
[libc++][ci] Enable modules in the Runtimes build

The runtimes build has assertions enabled, which is necessary to catch
some of the modules-related issues we've been seeing recently. This
patch enables testing with modules in the runtimes build so as to cover
those cases.

In the future, a better solution would be to systematically use versions
of Clang that have assertions enabled. However, the Clangs we release
currently don't have assertions enabled by default, which causes a
challenge for the CI (we could try to build our own Clang from ToT with
assertions in the CI, but that poses some problems).

Differential Revision: https://reviews.llvm.org/D104252
The file was modifiedlibcxx/utils/ci/run-buildbot
Commit 79f9cfbc21e02555258523ea77c3dd389891cfb3 by Yaxun.Liu
Do not merge LocalInstantiationScope for template specialization

A lambda in a function template may be recursively instantiated. The recursive
lambda will cause a lambda function instantiated multiple times, one inside another.
The inner LocalInstantiationScope should not be marked as MergeWithParentScope
since it already has references to locals properly substituted, otherwise it causes
assertion due to the check for duplicate locals in merged LocalInstantiationScope.

Reviewed by: Richard Smith

Differential Revision: https://reviews.llvm.org/D98068
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was addedclang/test/SemaCXX/recursive-lambda.cpp
Commit b01bfdfda64b684965cd7f97e99e4b0bce5d67fa by Vitaly Buka
[lld][MachO] Fix UB after D103006

ubsan detected:
lld/MachO/SyntheticSections.cpp:636:15: runtime error: null pointer
passed as argument 2, which is declared to never be null
The file was modifiedlld/MachO/SyntheticSections.cpp
Commit 51ed1c6ccc7b9d9b0ff3169b9f5e6b798eed599b by Vitaly Buka
[NFC][hwasan] Fix "implicitly declaring library function"
The file was modifiedcompiler-rt/test/hwasan/TestCases/mem-intrinsics.c
Commit 4017d0335a35334835bfae6fc3e258adcd9ed2dc by craig.topper
[X86] Use EVT::getVectorVT instead of changeVectorElementType in reduceVMULWidth.

Changing vector element type doesn't work for v6i32->v6i16 now
that v6i32 is an MVT and v6i16 is not.

I would like to fix this in changeVectorElementType, but you
need a LLVMContext to call getVectorVT which we can't get from
an MVT.

Fixes PR50709.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/pr50709.ll
Commit b4d40e19def8c2e1a77ae30b5ac16751d1c461f7 by CarlosAlbertoEnciso
[NFC] This is a test commit to check commit access.

Add full stop at the end of comment.
The file was modifiedllvm/test/DebugInfo/X86/c-type-units.ll
Commit cadcaf3f46f6ccd3619cb2dd75bf54ed3080f43d by Pushpinder.Singh
[AMDGPU][Libomptarget] Drop dead code related to g_atl_machine

This patch includes some changes which deletes the code accessing
g_atl_machine global. Some accesses related to memory_pools are
still remaining.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D103813
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/atmi_interop_hsa.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/rt.h
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/system.cpp
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/machine.h
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit 5e92cbddb901453ecd04138460c546b96d29097d by CarlosAlbertoEnciso
Revert "[NFC] This is a test commit to check commit access."

This reverts commit b4d40e19def8c2e1a77ae30b5ac16751d1c461f7.
The file was modifiedllvm/test/DebugInfo/X86/c-type-units.ll
Commit 68c161090ef6fe83218af6f627170ae56e5800b1 by Lang Hames
[ORC-RT] Fix void function handling in the WrapperFunction utility.

Handlers returning void previously caused compile errors. Fix that by
substituting SPSEmpty placeholder values.
The file was modifiedcompiler-rt/lib/orc/unittests/wrapper_function_utils_test.cpp
The file was modifiedcompiler-rt/lib/orc/wrapper_function_utils.h
Commit d0a5d8611935b548e1ec546b49201d47ac0a762c by CarlosAlbertoEnciso
[Debug-Info][CodeView] Fix GUID string generation for MSVC generated objects.

This patch is to address https://bugs.llvm.org/show_bug.cgi?id=50459.
  YAML:455:28: error: GUID strings are 38 characters long

The valid format for a GUID is {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
where X is a hex digit (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
The length of the individual components must be: 8, 4, 4, 4, 12.

For some cases, the converted string generated by obj2yaml, does not
comply with those lengths. yaml2obj checks that the GUID string must
be 38 characters including the dashes and braces.

Reviewed By: amccarth

Differential Revision: https://reviews.llvm.org/D103089
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-2.o
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-5.o
The file was addedllvm/test/tools/obj2yaml/COFF/test-4.test
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-1.o
The file was addedllvm/test/tools/obj2yaml/COFF/test-6.test
The file was addedllvm/test/tools/obj2yaml/COFF/test-5.test
The file was modifiedllvm/unittests/DebugInfo/CodeView/CMakeLists.txt
The file was modifiedllvm/lib/DebugInfo/CodeView/Formatters.cpp
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-3.o
The file was addedllvm/test/tools/obj2yaml/COFF/test-1.test
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-6.o
The file was addedllvm/unittests/DebugInfo/CodeView/GUIDFormatTest.cpp
The file was addedllvm/test/tools/obj2yaml/COFF/test-3.test
The file was addedllvm/test/tools/obj2yaml/COFF/Inputs/test-4.o
The file was addedllvm/test/tools/obj2yaml/COFF/test-2.test
Commit d8c5a4d6b6efad405c71ead8997276d8d3a7c5ad by llvmgnsyncbot
[gn build] Port d0a5d8611935
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn
Commit 6c7be4176703fff69d20acc466a879e080346f30 by tpopp
Support buffers in LinalgFoldUnitExtentDims

This doesn't add any canonicalizations, but executes the same
simplification on bufferSemantic linalg.generic ops by using
linalg::ReshapeOp instead of linalg::TensorReshapeOp.

Differential Revision: https://reviews.llvm.org/D103513
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
Commit 454d92ac3b3b13f5c8b3f57e03b2d93f0cf60738 by gchatelet
[libc] Add a set of elementary operations

Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.

Original commit message:
Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop).
The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.

A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
The file was modifiedlibc/src/string/memcpy.cpp
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt
The file was modifiedlibc/src/string/aarch64/memcpy.cpp
The file was addedlibc/test/src/string/memory_utils/elements_test.cpp
The file was addedlibc/test/src/string/memory_utils/memory_access_test.cpp
The file was modifiedlibc/src/string/CMakeLists.txt
The file was removedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
The file was modifiedlibc/src/string/memory_utils/memset_utils.h
The file was modifiedlibc/test/src/string/memory_utils/CMakeLists.txt
The file was removedlibc/src/string/memory_utils/memcpy_utils.h
The file was addedlibc/src/string/memory_utils/elements.h
The file was modifiedlibc/src/string/x86_64/memcpy.cpp
The file was addedlibc/src/string/memory_utils/elements_x86.h
Commit c11032ad9a6c4523d0d9d591ebce82c87a9fb3a0 by gchatelet
Revert "[libc] Add a set of elementary operations"

This reverts commit 454d92ac3b3b13f5c8b3f57e03b2d93f0cf60738.
The file was removedlibc/test/src/string/memory_utils/memory_access_test.cpp
The file was modifiedlibc/src/string/x86_64/memcpy.cpp
The file was modifiedlibc/src/string/memory_utils/memset_utils.h
The file was modifiedlibc/src/string/memcpy.cpp
The file was addedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
The file was removedlibc/src/string/memory_utils/elements_x86.h
The file was removedlibc/src/string/memory_utils/elements.h
The file was modifiedlibc/test/src/string/memory_utils/CMakeLists.txt
The file was addedlibc/src/string/memory_utils/memcpy_utils.h
The file was modifiedlibc/src/string/aarch64/memcpy.cpp
The file was modifiedlibc/src/string/memory_utils/CMakeLists.txt
The file was modifiedlibc/src/string/CMakeLists.txt
The file was removedlibc/test/src/string/memory_utils/elements_test.cpp
Commit 244601f4720d9cda6e81ea1908f3ce905a4bcb0e by Alexander.Richardson
[builtins] Allow compiling the builtins without libc headers

When compiled with -ffreestanding, we should not assume that headers
declaring functions such as abort() are available. While the compiler may
still emit calls to those functions [1], we should not require the headers
to build compiler-rt since that can result in a cyclic dependency graph:
The compiler-rt functions might be required to build libc.so, but the libc
headers such as stdlib.h might only be available once libc has been built.

[1] From https://gcc.gnu.org/onlinedocs/gcc/Standards.html:
GCC requires the freestanding environment provide memcpy, memmove,
memset and memcmp. Finally, if __builtin_trap is used, and the target
does not implement the trap pattern, then GCC emits a call to abort.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D103876
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
The file was modifiedcompiler-rt/lib/builtins/atomic.c
The file was modifiedcompiler-rt/lib/builtins/int_util.c
Commit f5dc511c538745df1ef4c5a22b99b56747f32edc by jay.foad
[IR] Remove forward declaration of GraphTraits from Type.h

This has been unnecessary since r352353 removed GraphTraits
specializations for Type, except that a couple of other headers were
accidentally relying on this declaration.

Differential Revision: https://reviews.llvm.org/D104119
The file was modifiedllvm/include/llvm/IR/ModuleSummaryIndex.h
The file was modifiedllvm/include/llvm/Analysis/LazyCallGraph.h
The file was modifiedllvm/include/llvm/IR/Type.h
Commit b6ab4f1a8b6546b67dbcc3612f33c26d9b72a5cc by springerm
[mlir][linalg] Fold linalg.pad_tensor if src type == result type

Fold PadTensorOp to source if source type and result type have static shape and are equal.

Differential Revision: https://reviews.llvm.org/D103778
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
Commit 54bd95cd96bc7305219b594f95d7d1f447ee4c94 by krasimir
[clang-format] distinguish function type casts after 21c18d5a04316891110cecc2bf37ce51533decba

https://github.com/llvm/llvm-project/commit/21c18d5a04316891110cecc2bf37ce51533decba
improved the detection of multiplication in function call argument lists,
but unintentionally regressed the handling of function type casts (there
were no tests covering those).
This patch improves the detection of function type casts and adds a few tests.

Reviewed By: HazardyKnusperkeks

Differential Revision: https://reviews.llvm.org/D104209
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
Commit bbebf38b736a12c9582f9ae59c8e245a6ed68cb8 by vsavchenko
[analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler

After this patch, custom StoreHandlers will also work as expected.

Differential Revision: https://reviews.llvm.org/D103644
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 85f475c979aa49b1b833c9e66af9cb35eafd02c7 by vsavchenko
[analyzer] Extract ControlDependencyHandler

Differential Revision: https://reviews.llvm.org/D103677
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 1639dcb2798469c4372e50bcb6b4cf36ecffd9ce by vsavchenko
[analyzer] Extract NilReceiverHandler

Differential Revision: https://reviews.llvm.org/D103902
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 40cb73bd20735051eb8f2d43735097d2ff46f0a7 by vsavchenko
[analyzer] Extract ArrayIndexHandler

One interesting problem was discovered here.  When we do interrupt
Tracker's track flow, we want to interrupt only it and not all the
other flows recursively.

Differential Revision: https://reviews.llvm.org/D103914
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 2e490676ea2eb419e7b2f54e1e2e537d5244ebbc by vsavchenko
[analyzer] Extract InterestingLValueHandler

Differential Revision: https://reviews.llvm.org/D103917
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 6e6a26b8f0ea8300d5a814e4150e225c33ec25de by vsavchenko
[analyzer] Extract InlinedFunctionCallHandler

Differential Revision: https://reviews.llvm.org/D103961
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 16f7a952ec3e0f362690c6449951866100c6f76c by vsavchenko
[analyzer] Simplify the process of producing notes for stores

Differential Revision: https://reviews.llvm.org/D104046
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Commit 13f0b85212275fb6f724b14c2c5385385e5e723f by Alexander.Richardson
Fix Windows builders after 244601f4720d9cda6e81ea1908f3ce905a4bcb0e

Apparently __builtin_abort() is not supported when targetting Windows.
This should fix the following builder errors:
clang_rt.builtins-x86_64.lib(int_util.c.obj) : error LNK2019: unresolved
external symbol __builtin_abort referenced in function __compilerrt_abort_impl
The file was modifiedcompiler-rt/lib/builtins/int_util.c
Commit beb5213a2ee56bbf554ccdd1908c48d10e244dab by andrea.dibiagio
[MCA][InstrBuilder] Check for the presence of flag VariadicOpsAreDefs.

This patch fixes the logic that checks for variadic register definitions,

Before llvm-svn 348114 (commit 4cf35b4ab0b), it was not possible to explicitly
mark variadic operands as definitions. By default, variadic operands of an
MCInst were always assumed to be uses. A number of had-hoc checks were
introduced in the InstrBuilder to fix the processing of variadic register
operands of ARM ldm/stm variants.

This patch simply replaces those old (and buggy) checks with a much simpler (and
correct) check for MCID::Flag::VariadicOpsAreDefs.
The file was modifiedllvm/test/tools/llvm-mca/ARM/cortex-a57-carryover.s
The file was modifiedllvm/lib/MCA/InstrBuilder.cpp
Commit eadd54f2741f9dc7307512382a7c8fb49aa840d0 by vsavchenko
[analyzer] Decouple NoteTag from its Factory

This allows us to create other types of tags that carry useful
bits of information alongside.

Differential Revision: https://reviews.llvm.org/D104135
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
The file was modifiedclang/lib/StaticAnalyzer/Core/CoreEngine.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
Commit 88da6c1ead3f1b0431e6cfa054d2645612f049ce by lebedev.ri
[X86] Schedule-model second (mask) output of GATHER instruction

Much like `mulx`'s `WriteIMulH`, there are two outputs of
AVX2 GATHER instructions. This was changed back in rL160110,
but the sched model change wasn't present.

So right now, for sched models that are marked as complete
(`znver3` only now), codegen'ning `GATHER` results in a crash:
```
DefIdx 1 exceeds machine model writes for early-clobber renamable $ymm3, dead early-clobber renamable $ymm2 = VPGATHERDDYrm killed renamable $ymm3(tied-def 0), undef renamable $rax, 4, renamable $ymm0, 0, $noreg, killed renamable $ymm2(tied-def 1) :: (load 32, align 1)
```
https://godbolt.org/z/Ks7zW7WGh

I'm guessing we need to deal with this like we deal with `WriteIMulH`.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D104205
The file was modifiedllvm/lib/Target/X86/X86SchedHaswell.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver3.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleSLM.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver1.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver2.td
The file was modifiedllvm/lib/Target/X86/X86SchedSandyBridge.td
The file was modifiedllvm/lib/Target/X86/X86InstrSSE.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleBdVer2.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleAtom.td
The file was modifiedllvm/lib/Target/X86/X86ScheduleBtVer2.td
The file was modifiedllvm/lib/Target/X86/X86InstrAVX512.td
The file was modifiedllvm/lib/Target/X86/X86SchedBroadwell.td
The file was modifiedllvm/lib/Target/X86/X86SchedSkylakeServer.td
The file was modifiedllvm/lib/Target/X86/X86SchedSkylakeClient.td
The file was modifiedllvm/lib/Target/X86/X86Schedule.td
Commit fffb975095119adb5f91be4e3c83ac0cb4b1602c by jan.kratochvil
[lldb] Fix libstdc++ 11's std::unique_ptr affecting LLDB testsuite TestDataFormatterStdUniquePtr.py

libstdc++ since version 11 has a conditional compilation based on
[[no_unique_address]] availability whether one element is either
inherited or put there as a field with [[no_unique_address]].

The code comment is by teemperor.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104283
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
Commit 1540da3b788272e9aacc698ef96e75a4a5839ee1 by neil.henning
ABI breaking changes fixes.

This commit mostly just replaces bad uses of `NDEBUG` with uses of
`LLVM_ENABLE_ABI_BREAKING_CHANGES` - the safe way to include ABI
breaking changes (normally extra struct elements in headers).

Differential Revision: https://reviews.llvm.org/D104216
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was modifiedllvm/include/llvm/Transforms/Scalar/JumpThreading.h
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h
Commit 662e074d9043949eea4e360e47bf9e39959694b8 by akuegel
[mlir] Add NegOp to complex dialect.

Also add a lowering pattern from complex dialect to standard dialect.

Differential Revision: https://reviews.llvm.org/D104284
The file was modifiedmlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td
The file was modifiedmlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir