LLVM/project e39fb64llvm/include/llvm/Support/LSP Protocol.h, llvm/lib/Support/LSP Protocol.cpp

Merge branch 'main' into users/arsenm/x86/avoid-using-machine-function-getPointerRegClass
DeltaFile
+1,262-0llvm/include/llvm/Support/LSP/Protocol.h
+0-1,257mlir/include/mlir/Tools/lsp-server-support/Protocol.h
+1,043-0llvm/lib/Support/LSP/Protocol.cpp
+0-1,043mlir/lib/Tools/lsp-server-support/Protocol.cpp
+299-262mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
+0-369mlir/lib/Tools/lsp-server-support/Transport.cpp
+2,604-2,931162 files not shown
+5,815-4,286168 files

LLVM/project 2194d6dclang/include/clang/Analysis/Analyses LiveVariables.h, clang/lib/Analysis LiveVariables.cpp

[analyzer][NFC] Rename LivenessValues::equals to LivenessValues::operator== (#157657)

This is just more conventional.
DeltaFile
+2-2clang/lib/Analysis/LiveVariables.cpp
+1-1clang/include/clang/Analysis/Analyses/LiveVariables.h
+3-32 files

LLVM/project be9fb04llvm/lib/Target/AArch64 MachineSMEABIPass.cpp AArch64ISelLowering.cpp

[WIP] Refactor MachineSMEABIPass state

Change-Id: I3ec3dcb65a0ff77c59b0741ca7240d80f44e62a3
DeltaFile
+147-119llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
+1-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+148-1192 files

LLVM/project 513d9cdutils/bazel/llvm-project-overlay/llvm BUILD.bazel, utils/bazel/llvm-project-overlay/llvm/unittests BUILD.bazel

[mlir][Bazel] Adjust llvm Support target to include LSP sources.

Followup to a0b8d548fd25
DeltaFile
+17-0utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+19-03 files

LLVM/project 6dfc255lldb/test/API/lang/cpp/abi_tag_structors TestAbiTagStructors.py

[lldb][test] TestAbiTagStructors.py: XFAIL on Windows

This is failing on the lldb-aarch64-windows bots with (see error below).
XFAIL for now because it's unlikely that these expression evaluator
calls were supported before they were added.

```
======================================================================

FAIL: test_nested_no_structor_linkage_names_dwarf (TestAbiTagStructors.AbiTagStructorsTestCase.test_nested_no_structor_linkage_names_dwarf)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\packages\Python\lldbsuite\test\lldbtest.py", line 1828, in test_method

    return attrvalue(self)


    [109 lines not shown]
DeltaFile
+4-0lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py
+4-01 files

LLVM/project 0a5012fclang/lib/Headers avx512vlintrin.h avx512fintrin.h, clang/test/CodeGen/X86 avx512vl-builtins.c avx512f-builtins.c

[X86] Allow AVX512 rotate intrinsics to be used in constexpr (#157652)

Now that they wrap the __builtin_elementwise_fshl/fshr builtin intrinsics this is pretty trivial.

Another step towards #153152 - just VBMI2 double shifts remaining
DeltaFile
+24-24clang/lib/Headers/avx512vlintrin.h
+12-12clang/lib/Headers/avx512fintrin.h
+24-0clang/test/CodeGen/X86/avx512vl-builtins.c
+12-0clang/test/CodeGen/X86/avx512f-builtins.c
+72-364 files

LLVM/project 4d20027utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[mlir][Bazel] Add missing dependency as followup to 68830c76d8dc
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

LLVM/project 88035aallvm/test/CodeGen/Thumb2 mve-vld3.ll mve-laneinterleaving.ll

[DAGCombiner] Relax condition for extract_vector_elt combine

Checking `isOperationLegalOrCustom` instead of `isOperationLegal`
allows more optimization opportunities. In particular, if a target
wants to mark `extract_vector_elt` as `Custom` rather than `Legal`
in order to optimize some certain cases, this combiner would
otherwise miss some improvements.

Previously, using `isOperationLegalOrCustom` was avoided due to
the risk of getting stuck in infinite loops (as noted in
https://github.com/llvm/llvm-project/commit/61ec738b60a4fb47ec9b7195de55f1ecb5cbdb45).
After testing, the issue no longer reproduces, but the coverage
is limited to the regression/unit tests and the test-suite.

Would it make sense to relax this condition to enable more
optimizations? And what would be the best way to ensure that
doing so does not reintroduce infinite loop regressions?
Any suggestions would be appreciated.
DeltaFile
+97-208llvm/test/CodeGen/Thumb2/mve-vld3.ll
+116-136llvm/test/CodeGen/Thumb2/mve-laneinterleaving.ll
+108-139llvm/test/CodeGen/Thumb2/mve-laneinterleaving-cost.ll
+88-129llvm/test/CodeGen/Thumb2/mve-vld4.ll
+77-95llvm/test/CodeGen/Thumb2/mve-vmull-splat.ll
+33-53llvm/test/CodeGen/Thumb2/mve-vld2.ll
+519-76017 files not shown
+716-1,01723 files

LLVM/project b4075c4libcxx/include/__cxx03/__iterator prev.h, libcxx/test/libcxx-03/iterators/iterator.primitives/iterator.operations prev.verify.cpp

[libc++][C++03] cherry-pick #112102 (#157104)

DeltaFile
+17-1libcxx/include/__cxx03/__iterator/prev.h
+0-2libcxx/test/libcxx-03/iterators/iterator.primitives/iterator.operations/prev.verify.cpp
+17-32 files

LLVM/project abe96a2libcxx/utils/ci BOT_OWNERS.txt

[libc++] Update owners of Android CI in BOT_OWNERS.txt (#157183)

Add pirama-arumuga-nainar, Sharjeel-Khan and remove previous owner.
DeltaFile
+2-2libcxx/utils/ci/BOT_OWNERS.txt
+2-21 files

LLVM/project 150f3c3libcxx/include/__random binomial_distribution.h

[libc++] Fix missing macro definition for lgamma (#157610)

DeltaFile
+2-0libcxx/include/__random/binomial_distribution.h
+2-01 files

LLVM/project 78270d0offload/liboffload/API Memory.td, offload/liboffload/src OffloadImpl.cpp

[Offload] `olGetMemInfo`

This method queries an allocation allocated by `olMemAlloc`.
DeltaFile
+140-0offload/unittests/OffloadAPI/memory/olGetMemInfo.cpp
+70-0offload/unittests/OffloadAPI/memory/olGetMemInfoSize.cpp
+58-0offload/liboffload/src/OffloadImpl.cpp
+55-0offload/liboffload/API/Memory.td
+3-1offload/unittests/OffloadAPI/CMakeLists.txt
+326-15 files

LLVM/project 38a7161llvm/test/CodeGen/AArch64 local-bounds-single-trap.ll, llvm/test/MC/AArch64 local-bounds-single-trap.ll

AArch64: Fix codegen test in MC directory (#157648)

DeltaFile
+86-0llvm/test/CodeGen/AArch64/local-bounds-single-trap.ll
+0-86llvm/test/MC/AArch64/local-bounds-single-trap.ll
+86-862 files

LLVM/project 5544afdllvm/lib/Transforms/Utils LoopVersioning.cpp LoopUtils.cpp, llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[LoopUtils] Simplify expanded RT-checks (#157518)

Follow up on 528b13d ([SCEVExp] Add helper to clean up dead instructions
after expansion.) to hoist the SCEVExapnder::eraseDeadInstructions call
from LoopVectorize into the LoopUtils APIs add[Diff]RuntimeChecks, so
that other callers (LoopDistribute and LoopVersioning) can benefit from
the patch.
DeltaFile
+5-13llvm/test/Transforms/LoopVersioning/incorrect-phi.ll
+0-3llvm/test/Transforms/LoopVersioning/wrapping-pointer-versioning.ll
+2-0llvm/lib/Transforms/Utils/LoopVersioning.cpp
+2-0llvm/lib/Transforms/Utils/LoopUtils.cpp
+0-2llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll
+0-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+9-196 files

LLVM/project d2a99efoffload/plugins-nextgen/amdgpu/src rtl.cpp

Properly support "NOT_FOUND" in amdgpu
DeltaFile
+2-0offload/plugins-nextgen/amdgpu/src/rtl.cpp
+2-01 files

LLVM/project f7a0354offload/liboffload/src OffloadImpl.cpp, offload/plugins-nextgen/amdgpu/src rtl.cpp

Rename get_memory_info -> getMemInfo
DeltaFile
+2-2offload/plugins-nextgen/host/src/rtl.cpp
+1-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+1-1offload/plugins-nextgen/common/include/PluginInterface.h
+1-1offload/plugins-nextgen/cuda/src/rtl.cpp
+1-1offload/liboffload/src/OffloadImpl.cpp
+6-65 files

LLVM/project 14f7e5flld/COFF PDB.cpp Writer.cpp, lld/test/COFF precomp-link.test precomp-summary-fail.test

[LLD][COFF] Make `/summary` work when `/debug` isn't provided (#157476)

Previously, `/summary` was meant to print some PDB information. Now move
handling of `/summary` to `Writer.cpp` so that it can have an effect
when `/debug` isn't provided. This will also provide grounds for
extending with more general information.
DeltaFile
+26-46lld/COFF/PDB.cpp
+46-0lld/COFF/Writer.cpp
+20-2lld/test/COFF/precomp-link.test
+13-0lld/COFF/PDB.h
+2-2lld/test/COFF/precomp-summary-fail.test
+2-2lld/test/COFF/pdb-type-server-simple.test
+109-521 files not shown
+112-527 files

LLVM/project bf5ea87clang/lib/Analysis LiveVariables.cpp

[analyzer] In LivenessValues::equals also check liveBindings (#157645)

This was likely accidentally omitted when `liveBindings` was introduced.
I don't think in practice it matters.
DeltaFile
+2-1clang/lib/Analysis/LiveVariables.cpp
+2-11 files

LLVM/project 3a76747clang/lib/Headers xopintrin.h, clang/test/CodeGen/X86 xop-builtins.c

[X86] Allow XOP rotate intrinsics to be used in constexpr (#157643)

Now that they wrap the __builtin_elementwise_fshl/fshr builtin intrinsics this is pretty trivial.

Another step towards #153152 - I'll handle the AVX512 rotates next
DeltaFile
+4-4clang/lib/Headers/xopintrin.h
+4-0clang/test/CodeGen/X86/xop-builtins.c
+8-42 files

LLVM/project 048380bllvm/test/CodeGen/AArch64 local-bounds-single-trap.ll, llvm/test/MC/AArch64 local-bounds-single-trap.ll

AArch64: Fix codegen test in MC directory
DeltaFile
+86-0llvm/test/CodeGen/AArch64/local-bounds-single-trap.ll
+0-86llvm/test/MC/AArch64/local-bounds-single-trap.ll
+86-862 files

LLVM/project 4bc1333offload/plugins-nextgen/amdgpu/src rtl.cpp

Use proper size in amdgpu
DeltaFile
+1-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+1-11 files

LLVM/project c6fa4fbllvm/lib/Target/AMDGPU SIMemoryLegalizer.cpp, llvm/test/CodeGen/AMDGPU memory-legalizer-flat-cluster.ll memory-legalizer-global-cluster.ll

[AMDGPU][gfx1250] Support "cluster" syncscope

Defaults to "agent" for targets that do not support it.

- Add documentation
- Register it in MachineModuleInfo
- Add MemoryLegalizer support
DeltaFile
+25,726-0llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-cluster.ll
+23,810-0llvm/test/CodeGen/AMDGPU/memory-legalizer-global-cluster.ll
+23,347-0llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
+18,467-0llvm/test/CodeGen/AMDGPU/memory-legalizer-local-cluster.ll
+795-0llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
+36-15llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+92,181-154 files not shown
+92,224-1810 files

LLVM/project f1e9273llvm/test/CodeGen/AMDGPU whole-wave-functions.ll flat-saddr-atomics.ll

[AMDGPU][gfx1250] Remove SCOPE_SE for scratch stores
DeltaFile
+1,857-1,857llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
+116-116llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+97-97llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
+52-52llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-workgroup.ll
+52-52llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-singlethread.ll
+52-52llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
+2,226-2,22623 files not shown
+2,665-2,67029 files

LLVM/project 96d5567llvm/lib/Target/AArch64 MachineSMEABIPass.cpp AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sme-agnostic-za.ll

[AArch64][SME] Support agnostic ZA functions in the MachineSMEABIPass (#149064)

This extends the MachineSMEABIPass to handle agnostic ZA functions. This
case is currently handled like shared ZA functions, but we don't require
ZA state to be reloaded before agnostic ZA calls.

Note: This patch does not yet fully handle agnostic ZA functions that
can catch exceptions. E.g.:

```
__arm_agnostic("sme_za_state") void try_catch_agnostic_za_callee()
{
  try {
    agnostic_za_call();
  } catch(...) {
    noexcept_agnostic_za_call();
  }
}
```

    [3 lines not shown]
DeltaFile
+215-18llvm/test/CodeGen/AArch64/sme-agnostic-za.ll
+147-19llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
+23-13llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+3-1llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
+388-514 files

LLVM/project f0e9a11llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR omptarget-multi-block-reduction.mlir

[flang][OpenMP] Support multi-block reduction combiner  regions on the GPU

Fixes a bug related to insertion points when inlining multi-block
combiner reduction regions. The IP at the end of the inlined region was
not used resulting in emitting BBs with multiple terminators.
DeltaFile
+85-0mlir/test/Target/LLVMIR/omptarget-multi-block-reduction.mlir
+3-0llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+88-02 files

LLVM/project afd1552flang/lib/Optimizer/OpenMP DoConcurrentConversion.cpp, flang/test/Transforms/DoConcurrent reduce_device.mlir

[flang][OpenMP] `do concurrent`: support `reduce` on device

Extends `do concurrent` to OpenMP device mapping by adding support for
mapping `reduce` specifiers to omp `reduction` clauses. The changes
attach 2 `reduction` clauses to the mapped OpenMP construct: one on the
`teams` part of the construct and one on the `wloop` part.
DeltaFile
+68-49flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp
+53-0flang/test/Transforms/DoConcurrent/reduce_device.mlir
+121-492 files

LLVM/project 0c93791flang/include/flang/Optimizer/Dialect FIROps.td, flang/lib/Optimizer/OpenMP DoConcurrentConversion.cpp

[flang][OpenMP] `do concurrent`: support `local` on device

Extends support for mapping `do concurrent` on the device by adding
support for `local` specifiers. The changes in this PR map the local
variable to the `omp.target` op and uses the mapped value as the
`private` clause operand in the nested `omp.parallel` op.
DeltaFile
+114-78flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp
+49-0flang/test/Transforms/DoConcurrent/local_device.mlir
+12-0flang/include/flang/Optimizer/Dialect/FIROps.td
+175-783 files

LLVM/project 6c1a312offload/test/offloading/fortran do-concurrent-to-omp-saxpy-2d.f90 do-concurrent-to-omp-saxpy.f90

[flang][do concurent] Add saxpy offload tests for OpenMP mapping

Adds end-to-end tests for `do concurrent` offloading to the device.
DeltaFile
+53-0offload/test/offloading/fortran/do-concurrent-to-omp-saxpy-2d.f90
+53-0offload/test/offloading/fortran/do-concurrent-to-omp-saxpy.f90
+106-02 files

LLVM/project 4546522llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage OrcV2CBindingsBasicUsage.c, llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms OrcV2CBindingsIRTransforms.c

[ORC][examples][LLVM-C] Fix ThreadSafeContext to wrap existing context (#157366)

Fixes #155881

---------

Co-authored-by: Lang Hames <lhames at gmail.com>
DeltaFile
+2-1llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c
+2-1llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c
+2-1llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/OrcV2CBindingsVeryLazy.c
+6-33 files

LLVM/project 4ef4947llvm/lib/Target/AArch64/GISel AArch64InstructionSelector.cpp

Call addImplicitDefUseOperands unconditionally
DeltaFile
+1-2llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+1-21 files