LLVM/project feb8b10 — llvm/lib/ObjCopy/MachO MachOObject.h MachOObjcopy.cpp, llvm/test/tools/llvm-objcopy/MachO indirect-symbol-table-copy.s discard-all-relocations.test

[llvm-objcopy][MachO] Fix use-after-free when stripping (#228607)

We must preserve symbols referenced by the indirect symbol table even
with strip all, and we must preserve symbols referenced by relocations
without strip all.

Fixes: https://github.com/llvm/llvm-project/issues/228595

Assisted-by: codex
DeltaFile
+186-0llvm/test/tools/llvm-objcopy/MachO/discard-all-relocations.test
+21-0llvm/test/tools/llvm-objcopy/MachO/indirect-symbol-table-copy.s
+12-3llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp
+1-1llvm/lib/ObjCopy/MachO/MachOObject.h
+220-44 files

LLVM/project 6292b6e — lldb/source/Plugins/Platform/MacOSX PlatformRemoteAppleWatch.cpp PlatformRemoteAppleTV.cpp

[lldb] Search both visionOS and XROS DeviceSupport directories (#228573)

Xcode now downloads visionOS shared cache symbols into
~/Library/Developer/Xcode/visionOS DeviceSupport, but
PlatformRemoteAppleXR only looked in "XROS DeviceSupport". As a result,
LLDB never found the expanded shared cache for visionOS devices and
failed to resolve symbols like `memcpy`, which breaks expression
evaluation and loading images into the inferior.

This makes `GetDeviceSupportDirectoryName` return a list of directory
names (renamed to `GetDeviceSupportDirectoryNames`) and have
`PlatformDarwinDevice` search each of them. visionOS returns both the
current and the legacy name; all other platforms keep their single name
for now.

rdar://189049149

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+16-13lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp
+5-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
+33-2310 files not shown
+49-3516 files

LLVM/project 06fb2cb — clang/lib/CodeGen CGExprScalar.cpp, clang/test/OpenMP nvptx_target_teams_generic_loop_codegen.cpp target_map_section_inbounds.cpp

[OpenMP] Do not GEP 'inbounds' for multi-dimensional OpenMP device maps (#218436)

The C standard treats array subscripts as inbounds of the object, but
OpenMP section maps intentionally index from a host-relative base that
is not the mapped allocation. Drop inbounds on those GEPs so later
passes do not assume the slice lives inside the object.

---------

Co-authored-by: Alexey Bataev <a.bataev at gmx.com>
DeltaFile
+25-25clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
+25-25clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
+25-25clang/test/OpenMP/target_parallel_debug_codegen.cpp
+23-7clang/lib/CodeGen/CGExprScalar.cpp
+22-0clang/test/OpenMP/target_map_section_inbounds.cpp
+6-6clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
+126-8810 files not shown
+158-12016 files

LLVM/project 7d5ecf5 — llvm/lib/Transforms/Vectorize VPlan.h

[VPlan] Remove NDEBUG and LLVM_ENABLE_DUMP guards around VPBlockBase::printOperand (#228326)

DominatorTreeBase::print calls the printOperand function of its NodeT
type unconditionally and the VPDominatorTree class is derrived from
DominatorTreeBase<VPBlockBase, false>.

This fixes the link with MSVC and LLVM_BUILD_LLVM_DYLIB_VIS=ON.
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/VPlan.h
+1-11 files

LLVM/project 75a2bf4 — llvm/include/llvm/CodeGen SDPatternMatch.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[SDPatternMatch] Add m_Node and m_SpecificOpc that take Opcode from template argument
DeltaFile
+12-12llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+10-10llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+9-9llvm/lib/Target/X86/X86ISelLowering.cpp
+14-0llvm/include/llvm/CodeGen/SDPatternMatch.h
+3-3llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+6-0llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+54-346 files

LLVM/project 2d6d050 — libcxx/docs/Helpers ReleaseNotesTemplate.rst, libcxx/docs/ReleaseNotes 24.rst 23.rst

[libc++][docs] Use project-local links in release notes

Replace absolute libc++ homepage links with Sphinx document references in
release notes 20 through 24 and the release-note template.

I would leave these historical documents alone, but I have to fix these,
or the doc build will fail with warnings when I enable the absolute
self-link Sphinx doc build warning.

Validation: docs-libcxx-html, followed by a fresh Sphinx rebuild (-E), on
a merge of the three independent self-link fixes with the checker enabled
and warnings-as-errors disabled. No self-link warnings or new warning
messages compared with the audit baseline.

Part of #214861

Assisted-by: Codex
DeltaFile
+3-3libcxx/docs/ReleaseNotes/24.rst
+3-3libcxx/docs/ReleaseNotes/23.rst
+3-3libcxx/docs/ReleaseNotes/22.rst
+3-3libcxx/docs/ReleaseNotes/21.rst
+3-3libcxx/docs/ReleaseNotes/20.rst
+3-3libcxx/docs/Helpers/ReleaseNotesTemplate.rst
+18-186 files

LLVM/project 6dc0e52 — lldb/source/Host CMakeLists.txt, lldb/source/Host/linux PythonRuntimeLoaderLinux.cpp

[LLDB] Make PythonRuntimeLoader a posix platform library (#228598)

The symbol ForEachPythonRuntimeCandidate is required when python is
enabled on LLDB. However, it is only provided by Linux platform now.
Make such soure code be compiled under all Posix platform other than
Darwin or it causes link error.
DeltaFile
+38-0lldb/source/Host/posix/PythonRuntimeLoaderPosix.cpp
+0-37lldb/source/Host/linux/PythonRuntimeLoaderLinux.cpp
+7-5lldb/source/Host/CMakeLists.txt
+5-1llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
+50-434 files

LLVM/project 98b222e — clang-tools-extra/docs/clang-tidy Contributing.rst, flang/docs GettingStarted.md GettingInvolved.md

[docs] Repair remaining absolute self-documentation links

Replace same-project absolute URLs with relative source links or Sphinx
cross-references in LLVM, Flang, libc, clang-tools-extra, and OpenMP.
Use the explicit LangRef label for atomic.ignore.denormal.mode metadata.
This lets Sphinx validate the targets and keeps local and archived
documentation self-contained.

Validation: docs-llvm-html, docs-llvm-man, docs-llvm-dwarfdump-man,
docs-dsymutil-man, docs-flang-html, docs-flang-man, docs-clang-tools-html,
docs-clang-tools-man, docs-libc-html, docs-openmp-html, and docs-openmp-man,
followed by fresh Sphinx rebuilds (-E), on a merge of the three independent
self-link fixes with the checker enabled and warnings-as-errors disabled.
No self-link warnings or new warning messages compared with the audit
baseline.

Part of #214861

Assisted-by: Codex
DeltaFile
+4-4libc/docs/dev/code_style.md
+2-2openmp/docs/CommandLineArgumentReference.md
+2-2llvm/docs/AMDGPUUsage.rst
+1-1flang/docs/GettingStarted.md
+1-1flang/docs/GettingInvolved.md
+1-1clang-tools-extra/docs/clang-tidy/Contributing.rst
+11-112 files not shown
+13-138 files

LLVM/project 7ba957f — lldb/docs index.md, lldb/docs/man lldb.rst

[lldb][docs] Use project-local documentation links

Replace same-project absolute URLs with relative Markdown links and Sphinx
cross-references so local and archived documentation stays self-contained.
Update generated Python API docstrings at their header and SWIG inputs,
and repair stale Python and frame-recognizer destinations.

Validation: docs-lldb-html and docs-lldb-man, followed by fresh Sphinx
rebuilds (-E), on a merge of the three independent self-link fixes with
the checker enabled and warnings-as-errors disabled. No self-link warnings
or new warning messages compared with the audit baseline.
C/C++ formatting: git-clang-format --diff against main for the three
modified API headers reported no changes.

Part of #214861

Assisted-by: Codex
DeltaFile
+4-4lldb/docs/use/lldbdap.md
+4-4lldb/docs/resources/lldbdap-contributing.md
+3-3lldb/docs/man/lldb.rst
+2-2lldb/docs/index.md
+1-1lldb/include/lldb/API/SBThread.h
+1-1lldb/include/lldb/API/SBFrame.h
+15-155 files not shown
+20-2011 files

LLVM/project 04f2187 — llvm/test/CodeGen/AMDGPU amdgcn.bitcast.768bit.ll amdgcn.bitcast.832bit.ll

rebase to main

Created using spr 1.3.7
DeltaFile
+75,746-95,162llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+20,168-25,874llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+16,417-20,023llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+15,309-18,740llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+14,068-17,405llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+12,025-15,376llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+153,733-192,5805,179 files not shown
+361,627-360,4595,185 files

LLVM/project a07ace6 — llvm/lib/Target/AMDGPU GCNRegPressure.h GCNRegPressure.cpp

[AMDGPU][NFC] Extract GCNDownwardRPTracker::retireVirtReg (#228289)

Pull the per-register retirement logic out of advanceBeforeNext() into a
helper. The operand reference is replaced by the register argument.

A follow-up change needs to retire dying uses and dead defs at different
points in the walk, which requires this logic to be callable from more
than one place.

https://github.com/llvm/llvm-project/pull/228294 depends on this patch.

Assisted-by: Cursor/Claude Opus
DeltaFile
+28-24llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+5-0llvm/lib/Target/AMDGPU/GCNRegPressure.h
+33-242 files

LLVM/project 5936811 — llvm/lib/ExecutionEngine/Orc Core.cpp

ORC: Fix flaky OrcLazy tests

I've seen this fail a few too many times so just let AI deal with it. I don't
know anything about orc, but extend lifetime of lock_guard seems plausible.

Notify lookupInitSymbols CV while holding the mutex

The init-symbol lookup completion callback decremented Count under
LookupMutex but called CV.notify_one() after releasing it. The waiting
thread could observe Count == 0, return from lookupInitSymbols, and
destroy the stack-allocated mutex and condition variable before the
callback signalled it. With concurrent compile threads the callback runs
on a dispatcher thread, so the late notify wrote into reused stack
memory, e.g. during endSession right after deinitialize.

This caused intermittent crashes in
ExecutionEngine/OrcLazy/multiple-compile-threads-basic.ll on macOS
(#50408, #126982). MachOPlatform and ELFNixPlatform already notify their
bootstrap condition variables under the mutex for the same reason.

    [2 lines not shown]
DeltaFile
+9-10llvm/lib/ExecutionEngine/Orc/Core.cpp
+9-101 files

LLVM/project c8c168b — llvm/lib/CodeGen TargetLoweringBase.cpp, llvm/lib/LTO ThinLTOCodeGenerator.cpp LTOBackend.cpp

CodeGen: Prefer getting the Triple from the Module

Take the triple from the contextual module rather than TargetMachine
when it's already readily available.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+4-4llvm/lib/CodeGen/TargetLoweringBase.cpp
+2-2llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+1-1llvm/lib/Target/X86/X86ISelLowering.cpp
+1-1llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
+1-1llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+1-1llvm/lib/LTO/LTOBackend.cpp
+10-101 files not shown
+11-117 files

LLVM/project c6b128f — llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp, llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp

CodeGen: Prefer getting the Triple from the Module when convenient

Take the triple from the contextual module rather than TargetMachine
when it's already readily available.
DeltaFile
+17-16llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+5-4llvm/lib/Target/X86/X86AsmPrinter.cpp
+4-4llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
+3-3llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+3-3llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+3-2llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
+35-325 files not shown
+41-3811 files

LLVM/project e0533e9 — llvm/test/CodeGen/AArch64 div-i256.ll phi.ll, llvm/test/CodeGen/RISCV abdu.ll idiv_large.ll

CodeGen: Run LiveIntervals before PHIElimination and drop LiveVariables from it

Move LiveIntervals to run before PHIElimination in the optimized register
allocation pipeline, and make PHIElimination maintain LiveIntervals only.

This removes the last explicit use of LiveVariables. The actual analysis is no
longer used. There are implicit dependencies on the side effects of running the
analysis due to adjustments of dead flags, so further work is still needed to
complete the removal.

This perturbs register allocation in a number of tests. The same codegen result
can be achieved by not preserving the analysis and recomputing fresh. Greedy is
just sensitive to the exact slot index and value numbering with identical MIR.

Measured across every affected test the emitted instruction count goes from
145124 to 145196, +0.050%, with changes in both directions. The largest
regression is AArch64/phi.ll, where the GlobalISel output gains about 30
instructions and no longer matches the SelectionDAG output; the largest
improvements are ARM/fpclamptosat.ll and PowerPC/common-chain.ll.

    [2 lines not shown]
DeltaFile
+1,648-1,642llvm/test/CodeGen/RISCV/GlobalISel/wide-scalar-shift-by-byte-multiple-legalization.ll
+1,026-1,017llvm/test/CodeGen/X86/i128-udiv.ll
+396-396llvm/test/CodeGen/RISCV/idiv_large.ll
+452-210llvm/test/CodeGen/AArch64/phi.ll
+290-290llvm/test/CodeGen/RISCV/abdu.ll
+242-242llvm/test/CodeGen/AArch64/div-i256.ll
+4,054-3,797126 files not shown
+8,122-8,041132 files

LLVM/project 72a3414 — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenBuiltin.cpp CIRGenCoroutine.cpp

[ClangIR] Support __builtin_coro_noop (#227573)

Support `__builtin_coro_noop` in ClangIR:
- Add `CIR_CoroNoopOp` (`cir.coro.intrinsic.noop`) in `CIROps.td` with
TableGen lowering to `llvm.coro.noop`.
- Handle `Builtin::BI__builtin_coro_noop` in `CIRGenBuiltin.cpp`.
- Add roundtrip (`clang/test/CIR/IR/coro-noop.cir`) and DirectToLLVM
lowering (`clang/test/CIR/Lowering/coro-noop.cir`) tests.
- Uncomment and test `__builtin_coro_noop()` in
`clang/test/CIR/CodeGenCoroutines/coro-builtins.cpp` with both CIR and
LLVM checks for parity with classic Clang CodeGen.

Closes #227561
DeltaFile
+13-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+11-0clang/test/CIR/IR/coro-noop.cir
+11-0clang/test/CIR/Lowering/coro-noop.cir
+4-2clang/test/CIR/CodeGenCoroutines/coro-builtins.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
+1-2clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+45-41 files not shown
+46-47 files

LLVM/project 101c42b —

Update commit message

Created using spr 1.3.7
DeltaFile
+0-00 files

LLVM/project e99d532 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_mman.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+17-22compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+3-3compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+2-2compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_mman.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
+25-301 files not shown
+26-317 files

LLVM/project 015aa18 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_mman.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+22-17compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+3-3compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+2-2compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_mman.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
+30-251 files not shown
+31-267 files

LLVM/project c6827b1 —

Update commit message

Created using spr 1.3.7
DeltaFile
+0-00 files

LLVM/project 2d7a017 — compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp tsan_rtl_mutex.cpp

Add CheckNoLocks and keep ReportDestroyLocked RestoreStack in place

Created using spr 1.3.7
DeltaFile
+12-17compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+2-0compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+14-172 files

LLVM/project ff2e853 — llvm/utils/gn/secondary/bolt/test BUILD.gn

[gn] port 873f7ef7077fd5f3 (#228617)
DeltaFile
+14-0llvm/utils/gn/secondary/bolt/test/BUILD.gn
+14-01 files

LLVM/project 937a402 — llvm/utils/gn/secondary/llvm/lib/ABI BUILD.gn, llvm/utils/gn/secondary/llvm/unittests/ABI BUILD.gn

[gn build] Port cd94d181b2e3 (#228616)
DeltaFile
+3-2llvm/utils/gn/secondary/llvm/unittests/ABI/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/ABI/BUILD.gn
+4-22 files

LLVM/project 7bc1de4 — llvm/utils/gn/secondary/clang/lib/CodeGenUtils BUILD.gn

[gn build] Port c666ea6d7cae (#228615)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/lib/CodeGenUtils/BUILD.gn
+1-01 files

LLVM/project 07e69cf — llvm/include/llvm/CodeGen ISDOpcodes.h, llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp SelectionDAGDumper.cpp

DAG: Gracefully diagnose missing fp-compare libcall when softening (#228416)

Avoid fatal errors, and legalize to poison with a proper context error.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+59-30llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
+25-10llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+23-0llvm/test/CodeGen/NVPTX/fp128-compare-no-libcall-error.ll
+5-0llvm/include/llvm/CodeGen/ISDOpcodes.h
+112-404 files

LLVM/project 318d8c3 — llvm/lib/Target/SPIRV SPIRVPrepareGlobals.cpp, llvm/test/CodeGen/SPIRV/passes SPIRVPrepareGlobals.ll

[SPIRV] Don't treat noipa aliasees as interposable in SPIRVPrepareGlobals (#228178)

SPIRVPrepareGlobals replaces aliases with their aliasee because the
backend can't lower GlobalAlias. It must skip aliasees that may be
replaced at link time, but `isInterposable()` also returns true for
`noipa` function definitions by default. `noipa` doesn't change which
definition is used at link time, so query
`isInterposable(/*CheckNoIPA=*/false)` so aliases of `noipa` functions
are still replaced.

This is one of a few refinements of noipa identified while working on
making optnone imply noipa - without these refinements,
optnone-implies-noipa, might substantially change clang -O0 codegen. I'm
open to discussing whether these refinements are the right direction,
though.

Assisted-By: Claude
DeltaFile
+15-0llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals.ll
+3-1llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.cpp
+18-12 files

LLVM/project a881915 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_interceptors_posix.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+18-33compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+8-18compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+8-13compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-12compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+6-11compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+88-875 files not shown
+103-11511 files

LLVM/project 4833c05 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_interceptors_posix.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+35-45compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+26-33compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+8-13compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+7-12compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+127-1185 files not shown
+144-14811 files

LLVM/project 63238ed — llvm/include/llvm/Support ErrorOr.h

[llvm][Support] Remove stale `ErrorOr` documentation regarding user data. (#227796)

Optional user data support was removed from `ErrorOr` in ca35ffe6a239 in November 2013.
DeltaFile
+1-1llvm/include/llvm/Support/ErrorOr.h
+1-11 files

LLVM/project 0a9f9d5 — llvm/lib/Target/AArch64 AArch64SVEInstrInfo.td, llvm/utils/TableGen/Common CodeGenDAGPatterns.cpp

[TableGen][AArch64] Relax EnforceVectorSubVectorTypeIs for mixing fixed and scalable vectors. (#228552)

The minimum elements of a fixed subvector may be greater than or equal
to the minimum elements of the scalable vector when vscale is greater
than 1. With a fixed subvector and a scalable vector we now allow the
subvector to have the same minimum elements as the vector. That covers a
NEON subvector and a SVE vector.

It is possible to have a subvector with more minimum elements than the
vector when vscale is known to be greater than 1, but both RISC-V
vectors and SVE use custom isel rather than tablegen for those cases.

With that fixed, migrate AArch64 to use
extract_subvector/insert_subvector instead of
vector_extract_subvec/vector_insert_subvec. A follow up will remove
vector_extract_subvec/vector_insert_subvec.
DeltaFile
+10-10llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+10-1llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+20-112 files