LLVM/project 84b64afllvm/test/CodeGen/AArch64 clmul-scalable.ll, llvm/test/CodeGen/AMDGPU fptoi.i128.ll

Merge branch 'main' into users/usx95/02-11-move_unique_ptr_release
DeltaFile
+1,560-1,560llvm/test/tools/llvm-mca/RISCV/SiFive7/vector-fp.s
+991-1,493llvm/test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll
+80-2,209llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops-large-matrixes.ll
+470-1,417llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
+1,060-707llvm/test/CodeGen/AArch64/clmul-scalable.ll
+1,656-0llvm/test/Transforms/SLPVectorizer/AArch64/aarch64-vector-functions.ll
+5,817-7,3862,578 files not shown
+109,326-49,7752,584 files

LLVM/project 26520a9flang/lib/Semantics check-omp-loop.cpp check-omp-structure.h

[flang][OpenMP] Inline CheckNestedBlock, NFC

CheckNestedBlock no longer calls itself, which was the primary reason
for the code to be in a separate function.
DeltaFile
+20-26flang/lib/Semantics/check-omp-loop.cpp
+0-2flang/lib/Semantics/check-omp-structure.h
+20-282 files

LLVM/project cc67cb6clang/docs ClangFormatStyleOptions.rst ReleaseNotes.rst, clang/include/clang/Format Format.h

[clang-format] Add AfterComma option for BreakConstructorInitializers (#180541)

This patch introduces a new `AfterComma` value for the
`BreakConstructorInitializers` style option. This style keeps the
constructor initializer colon on the same line as the constructor
declaration and breaks after each comma in the initializer list.

Example formatting:
```cpp
Constructor() : initializer1(),
                initializer2()
```

This style provides an alternative to the existing BeforeColon,
BeforeComma, and AfterColon options, allowing developers to maintain the
colon on the constructor line while placing each initializer on its own
line after commas.

---------

Co-authored-by: Perceval <perceval at trilogic.fr>
DeltaFile
+48-0clang/unittests/Format/FormatTest.cpp
+13-3clang/lib/Format/TokenAnnotator.cpp
+7-1clang/include/clang/Format/Format.h
+8-0clang/docs/ClangFormatStyleOptions.rst
+3-1clang/docs/ReleaseNotes.rst
+2-1clang/lib/Format/ContinuationIndenter.cpp
+81-62 files not shown
+84-68 files

LLVM/project 86f167bllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU llvm.log.ll llvm.log10.ll

AMDGPU: Use promotion to f32 path for log/log10 for f16 by default (#180240)

DeltaFile
+638-388llvm/test/CodeGen/AMDGPU/llvm.log.ll
+638-388llvm/test/CodeGen/AMDGPU/llvm.log10.ll
+16-6llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+5-1llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+1,297-7834 files

LLVM/project 2d70091mlir/lib/Target/SPIRV/Deserialization Deserializer.cpp

[mlir][spirv][nfc] Refactor deserialization of decorations (#181700)

Move all single integer literal decorations into a common case in spirv
deserializer. There was an unnnecessary duplication of switch cases that
served the same purpose.

Change OpDecoration -> OpDecorate as that is the correct name of the op
DeltaFile
+7-14mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
+7-141 files

LLVM/project dd6747bflang/lib/Semantics check-omp-loop.cpp check-omp-structure.h

[flang][OpenMP] Include check for fully unrolled loops into nest check, NFC

It's naturally a part of the verification of constructs nested in loop
constructs, so perform that check there instead of having it in a separate
function.
DeltaFile
+15-24flang/lib/Semantics/check-omp-loop.cpp
+0-1flang/lib/Semantics/check-omp-structure.h
+15-252 files

LLVM/project a4d3a35llvm/lib/Target/SPIRV SPIRVGlobalRegistry.cpp

[SPIRV] Stop using createOpType in SPIRVGlobalRegistry::getOrCreateUndef
DeltaFile
+8-16llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+8-161 files

LLVM/project 7ec7907llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer loads-with-large-distance.ll

[SLP] Fix a very long loads offset, being stored in DenseMap

Added a check for a very long offset to avoid a crash in the compiler

Fixes #181682
DeltaFile
+21-0llvm/test/Transforms/SLPVectorizer/loads-with-large-distance.ll
+4-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+25-02 files

LLVM/project e559d0allvm/utils/TableGen DAGISelMatcherOpt.cpp

[TableGen] Fix -Wunused-variable in non-assertion builds
DeltaFile
+1-0llvm/utils/TableGen/DAGISelMatcherOpt.cpp
+1-01 files

LLVM/project 3b2233amlir/include/mlir-c/Dialect SMT.h, mlir/lib/Bindings/Python DialectSMT.cpp

[MLIR][Python][SMT] Expose TypeIds for SMT Types (#181719)

Enables, among other things, the registration of type casters.
DeltaFile
+10-0mlir/lib/CAPI/Dialect/SMT.cpp
+6-0mlir/include/mlir-c/Dialect/SMT.h
+6-0mlir/lib/Bindings/Python/DialectSMT.cpp
+22-03 files

LLVM/project 3b73293llvm/include/llvm/IR RuntimeLibcalls.td

Fix type mismatch in ARM calling convention ternary (#180872)

GCC's -Wextra flags the ternary in the ARM half-precision calling
convention setup because the branches have different types. Use
static_cast to make both sides consistent.

Built with ToT clang and GCC 13.3.0 on Linux x86_64. All existing tests
pass.
DeltaFile
+2-2llvm/include/llvm/IR/RuntimeLibcalls.td
+2-21 files

LLVM/project 8f1f421lldb/docs/use python-reference.rst, lldb/docs/use/tutorials custom-symbol-resolution.md hunting-down-symbols.md

[lldb/docs] Update Scripted Symbol Locator tutorial title (NFC) (#181717)

This patch addresses some post-merge comments from llvm-project#181594,
where the tutorial name for Scripted Symbol Locator was missing a word
and wasn't capitalized properly.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+165-0lldb/docs/use/tutorials/custom-symbol-resolution.md
+0-165lldb/docs/use/tutorials/hunting-down-symbols.md
+1-1lldb/docs/use/python-reference.rst
+166-1663 files

LLVM/project 180f782libcxx/src atomic.cpp

[libc++] Fix FreeBSD atomic timed wait system call (#180400)

This PR fixes atomic timed wait on FreeBSD platforms.

When we added timed wait support, on FreeBSD platform, we were looking
only the `UMTX_OP_WAIT` section of the FreeBSD doc
https://man.freebsd.org/cgi/man.cgi?query=_umtx_op&apropos=0&sektion=2&manpath=FreeBSD+16.0-CURRENT&format=html
. Somehow we missed the generic section that describes the timeout
parameter that applies to all operations. As a consequence, we missed
the part that the FreeBSD is expecting the `size` to be casted to
`uintptr_t`, then passed in to the `void*` parameter.

This PR fixes the issue by casting the type to what the system requires.

As drive by, this PR also
- uses simple `timespec` instead of the extended one
- as documentation suggests, "Interval counting is always performed by
the monotonic wall clock", and "If the flag is absent, the timeout value
is relative", which means that using the simple version is enough and

    [6 lines not shown]
DeltaFile
+12-11libcxx/src/atomic.cpp
+12-111 files

LLVM/project d7f32c2lld/test/ELF eh-frame-hdr-sdata8.s

[ELF,test] eh-frame-hdr-sdata8.s: use AT() to avoid huge PT_LOAD segments

Use AT() to ensure output sections with huge addresses are placed in separate
PT_LOAD segments. Without this, 2.lds and 3.lds created a huge PT_LOAD
segment, making the sparse file size larger than 4GiB, unsupported by
some 32-bit systems.

https://github.com/llvm/llvm-project/pull/179089#issuecomment-3908549089
DeltaFile
+6-4lld/test/ELF/eh-frame-hdr-sdata8.s
+6-41 files

LLVM/project fc1de8alldb/source/Plugins/Highlighter/TreeSitter/Swift SwiftTreeSitterHighlighter.cpp SwiftTreeSitterHighlighter.h, lldb/source/Plugins/Highlighter/TreeSitter/Swift/tree-sitter-swift grammar.js scanner.c

[lldb] Add tree-sitter based Swift syntax highlighting

This adds tree-sitter based Swift syntax highlighting to LLDB. It
consists of the SwiftTreeSitterHighlighter plugin and the Swift grammar
from [1], which is licensed under MIT.

[1] https://github.com/alex-pinkus/tree-sitter-swift

Depends on:
*  https://github.com/llvm/llvm-project/pull/181282
DeltaFile
+1,594-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/tree-sitter-swift/grammar.js
+865-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/tree-sitter-swift/scanner.c
+336-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/tree-sitter-swift/highlights.scm
+43-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp
+40-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.h
+39-0lldb/source/Plugins/Highlighter/TreeSitter/Swift/tree-sitter-swift/tree-sitter.json
+2,917-06 files not shown
+3,036-212 files

LLVM/project a33db04lldb/unittests/Target LanguageTest.cpp, llvm/include/llvm/BinaryFormat Dwarf.h Dwarf.def

Add DW_LNAME_HIP (#180999)

In PR #89980, DW_LNAME_HIP was not added because of a value conflict
with DW_LNAME_Assembly. The value of DW_LNAME_HIP has been updated (see
https://dwarfstd.org/languages-v6.html). This commit adds DW_LNAME_HIP.
Tests added by that PR accommodates the new SourceLanguageName.
DeltaFile
+3-3llvm/include/llvm/BinaryFormat/Dwarf.h
+1-5lldb/unittests/Target/LanguageTest.cpp
+1-1llvm/include/llvm/BinaryFormat/Dwarf.def
+1-0llvm/lib/BinaryFormat/Dwarf.cpp
+6-94 files

LLVM/project 21bc4aallvm/utils/TableGen RegisterInfoEmitter.cpp

[TableGen] Use a new helper function for -register-info-debug. NFC. (#181704)

Use a new helper function for printing things derived from InfoByHwMode.
DeltaFile
+33-22llvm/utils/TableGen/RegisterInfoEmitter.cpp
+33-221 files

LLVM/project c69a6beclang/include/clang/StaticAnalyzer/Core/PathSensitive SMTConv.h SMTConstraintManager.h

[analyzer][Z3][NFCI] Simplify getExpr* functions by taking a RetTy reference (#180801)

Let me start by: This is some ancient code and was never really uphold
to the greatest quality standards.

It turns out the `RetTy` was almost always provided, and in the cases
when it wasn't, we could just pass a dummy and discard the result.

Probably the APIs could be refactored, but I decided not to. The code
mostly works, let's not stir up the mud.

Addresses
https://github.com/llvm/llvm-project/pull/168034#discussion_r2785236941
DeltaFile
+35-38clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
+2-2clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
+37-402 files

LLVM/project e6e94a6lld/ELF Config.h

[NFC][ELF] Remove unused Config::hasTlsIe (#181680)

This was obsoleted by Ctx::hasTlsIe when the latter was introduced, but
the old Config::hasTlsIe was not removed at the same time.

Fixes: 2b153088be4a ("[ELF] Set DF_STATIC_TLS for AArch64/PPC32/PPC64")
DeltaFile
+0-5lld/ELF/Config.h
+0-51 files

LLVM/project 36a716flldb/packages/Python/lldbsuite/test decorators.py

[lldb] fix a typo in decorator's docstring (#181697)

DeltaFile
+1-1lldb/packages/Python/lldbsuite/test/decorators.py
+1-11 files

LLVM/project f46c2c4mlir/include/mlir/IR Interfaces.td, mlir/include/mlir/Reducer DialectReductionPatternInterface.td ReductionPatternInterface.h

[MLIR] Convert DialectReductionPatternInterface using ODS (#180640)

This PR converts `DialectReductionPatternInterface` using ODS.

It also introduces a new Interface Method class:

`PureVirtualInterfaceMethod` which creates the method as pure virtual.
DeltaFile
+59-0mlir/include/mlir/Reducer/DialectReductionPatternInterface.td
+2-45mlir/include/mlir/Reducer/ReductionPatternInterface.h
+32-3mlir/tools/mlir-tblgen/DialectInterfacesGen.cpp
+22-1mlir/test/mlir-tblgen/dialect-interface.td
+5-0mlir/lib/TableGen/Interfaces.cpp
+5-0mlir/include/mlir/IR/Interfaces.td
+125-493 files not shown
+133-499 files

LLVM/project 3991d00llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

Remove comment
DeltaFile
+0-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+0-11 files

LLVM/project 1afd103llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-streaming-mode-fixed-length-int-reduce.ll aarch64-minmaxv.ll

Fixups
DeltaFile
+19-16llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+8-12llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-reduce.ll
+4-12llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
+31-403 files

LLVM/project 7bb484cllvm/test/CodeGen/AMDGPU annotate-kernel-features-hsa-call.ll branch-folding-implicit-def-subreg.ll

[NFC][AMDGPU] Use `zeroinitializer` instead of `null` for `ptr addrspace(2/3/5)` in AMDGPU tests

A future change will update `ConstantPointerNull` semantics so that `null`
represents the actual null pointer for a given address space, which may be
non-zero. For AMDGPU, address spaces 2, 3, and 5 will have non-zero null
pointers. These tests use `null` to mean "address zero", not "semantic null", so
replace them with `zeroinitializer` which unambiguously represents the start of
the corresponding address space. This is NFC because `null` and
`zeroinitializer` are currently equivalent for all address spaces today.
DeltaFile
+25-24llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll
+21-21llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
+8-8llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
+6-6llvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
+5-5llvm/test/CodeGen/AMDGPU/misched-remat-revert.ll
+5-5llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
+70-6965 files not shown
+180-17971 files

LLVM/project 9466b46llvm/lib/CodeGen ExpandIRInsts.cpp

Unify expandPow2Division/expandPow2Remainder into expandPow2DivRem.

Merge the two functions into one to share the common signed-path logic (freeze, bias, ashr) and reduce code duplication, as suggested.
DeltaFile
+66-85llvm/lib/CodeGen/ExpandIRInsts.cpp
+66-851 files

LLVM/project f530c16llvm/include/llvm/Frontend/OpenMP OMP.h ConstructDecompositionT.h, llvm/lib/Frontend/OpenMP OMP.cpp

[OpenMP] Make isPrivatizingClause version-sensitive (#181691)

Some pre-existing clauses (e.g. use_device_ptr) are privatizing in
OpenMP 6.0, but not in 5.2. Make the check more accurate by considering
the effective spec version.
DeltaFile
+6-5llvm/include/llvm/Frontend/OpenMP/OMP.h
+1-1llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
+1-1llvm/lib/Frontend/OpenMP/OMP.cpp
+8-73 files

LLVM/project fd54aa9llvm/lib/Target/X86 X86InstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/X86 x86-fp-minmax-negzero.ll

[instcombine][x86]: simplifyx86fpmaxmin - allow negzero for single operand (#180418)

Fixes #175552
DeltaFile
+103-0llvm/test/Transforms/InstCombine/X86/x86-fp-minmax-negzero.ll
+14-6llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
+117-62 files

LLVM/project 54a8b20clang-tools-extra/clang-tidy/modernize RedundantVoidArgCheck.cpp RedundantVoidArgCheck.h, clang-tools-extra/test/clang-tidy/checkers/modernize redundant-void-arg.cpp redundant-void-arg-delayed.cpp

[clang-tidy] Refactor `modernize-redundant-void-arg` (#173340)

Essentially, instead of having individual matchers for functions, and
for pointers to functions, and for casts to functions, and for typedefs
of functions, and (you get the point), this PR unifies them into one
`FunctionTypeLoc`-based matcher.

This refactor is not entirely NFC:
- First, it changes the diagnostic message. What used to be `redundant
void argument list in {function definition, lambda expression, etc.}` is
now just `redundant void argument list`. I don't think we're losing any
important information though.
- Second, it causes the check to fire in more places than it did before.
Specifically, it now removes the 2 `void`s in this test case:

https://github.com/llvm/llvm-project/blob/01effcd82dfbd3ce880a20c335334045191f217b/clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp#L434-L442
Seeing as this check does want to remove `void` in macros, I believe
this is fixing an FN. And I don't believe I'm violating the intent of
the test case, because [the intent was just to ensure the check doesn't
crash when encountering it](https://reviews.llvm.org/D14204).
DeltaFile
+23-259clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
+100-95clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg.cpp
+0-34clang-tools-extra/clang-tidy/modernize/RedundantVoidArgCheck.h
+3-3clang-tools-extra/test/clang-tidy/checkers/modernize/redundant-void-arg-delayed.cpp
+126-3914 files

LLVM/project f03ff95lldb/cmake/modules FindTreeSitter.cmake, lldb/include/lldb/Core Highlighter.h

[lldb] Add tree-sitter based syntax highlighting (#181279)

This adds the necessary infrastructure to use tree-sitter for syntax
highlighting in LLDB. It provides the base class for a tree-sitter
highlighter plugin. Its primary function is interfacing with the
tree-sitter library, and converting captures to highlighting styles.

Adding a new tree-sitter highlighter consists of creating an LLDB plugin
that inherits from this class. The plugin has two core responsibilities:

1. Loading the tree-sitter grammar.
2. Specifying the tree-sitter syntax highlighting query.

Everything else is handled by the base class, making it extremely easy
to add a new language.

For more context and the motivation behind using tree-sitter for syntax
highlighting, see #170250.
DeltaFile
+232-0lldb/source/Plugins/Highlighter/TreeSitter/TreeSitterHighlighter.cpp
+77-0lldb/source/Plugins/Highlighter/TreeSitter/TreeSitterHighlighter.h
+22-0lldb/cmake/modules/FindTreeSitter.cmake
+10-0lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt
+4-0lldb/include/lldb/Core/Highlighter.h
+3-0lldb/source/Plugins/Highlighter/CMakeLists.txt
+348-02 files not shown
+351-08 files

LLVM/project 0a0705ellvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-chained.ll partial-reduce-sub-sdot.ll

Tweak cost of sub-reductions

This patch tweaks the cost of sub-reductions such that add-with-sub
reductions are not always discarded by the cost-model, because at the
moment we rely on the LV to generate partial reductions for reduction
chains that have both adds and subs for generating complex dot-product
instructions.

We should really be modeling this in the LV directly though,
but at least this mitigates the regressions caused when using the
cost-model to determine whether partial reductions are profitable
before transforming the VPlan to use them.
DeltaFile
+20-16llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
+2-2llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-sdot.ll
+1-1llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+23-193 files