LLVM/project 5b6e697 — lldb/source/Plugins/Process/Utility lldb-riscv-register-enums.h, lldb/source/Register/Arch lldb-riscv-register-enums.h

Merge branch 'main' into users/usx95/10-14-experimental-group
DeltaFile
+0-4,730lldb/source/Plugins/Process/Utility/lldb-riscv-register-enums.h
+4,730-0lldb/source/Register/Arch/lldb-riscv-register-enums.h
+4,185-0llvm/test/Transforms/LoopVectorize/WebAssembly/dequantize.ll
+820-1,000llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
+1,079-468llvm/test/Analysis/CostModel/AArch64/free-widening-casts.ll
+1,174-0llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll
+11,988-6,1981,498 files not shown
+72,658-31,9181,504 files

LLVM/project ff9a490 — mlir/lib/Dialect/ArmSVE/Transforms LowerContractToSVEPatterns.cpp

[mlir][ArmSVE][NFC] Remove redundant scalability checks in contract lowering (#233868)

Replace
```cpp
if ( ... || !rhsType.getScalableDims()[0]) ...
  !rhsType.getScalableDims()[0])
```
with
```cpp
if ( ... || !rhsType.getScalableDims()[0]) ... )
```
DeltaFile
+2-4mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp
+2-41 files

LLVM/project e67b241 — flang/lib/Semantics canonicalize-omp.cpp, flang/test/Parser/OpenMP metadirective-dirspec.f90

[flang][OpenMP] Make sure that exec METADIRECTIVE is in execution part (#233147)

A METADIRECTIVE can be in either the specification part or the execution
part, depending on whether the variant directives contained in it are
declarative or executable. The OmpMetadirectiveDirective AST node can
hold any combination of variants, that is it can represent both kinds.
When the parser builds the specification part and attempts to create an
OmpMetadirectiveDirective, once it gets one it puts it in the
specification part regardless of the contents.

When an executable METADIRECTIVE is the first statement of the execution
part, it will end up in the specification part. This is an identical
situation as that for utility directives.

Recognize executable METADIRECTIVEs at the end of the specification part
and move them over to the beginning of the execution part.
DeltaFile
+86-21flang/lib/Semantics/canonicalize-omp.cpp
+59-2flang/test/Parser/OpenMP/metadirective-dirspec.f90
+145-232 files

LLVM/project f68ff0b — libc/src/__support/OSUtil/linux/syscall_wrappers setresuid.h setresgid.h, libc/src/unistd/linux setegid.cpp seteuid.cpp

[libc] Implement seteuid and setegid in unistd (#233088)

Implement the standard POSIX functions `seteuid` and `setegid` in
`<unistd.h>`.

Fixes #232380.

Assisted by Antigravity and reviewed by Aman Maurya.
DeltaFile
+40-0libc/src/__support/OSUtil/linux/syscall_wrappers/setresuid.h
+40-0libc/test/src/unistd/setegid_test.cpp
+40-0libc/test/src/unistd/seteuid_test.cpp
+40-0libc/src/__support/OSUtil/linux/syscall_wrappers/setresgid.h
+35-0libc/src/unistd/linux/setegid.cpp
+35-0libc/src/unistd/linux/seteuid.cpp
+230-011 files not shown
+396-017 files

LLVM/project 319e9a6 — llvm/include/llvm/IR RuntimeLibcallsImpl.td RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Use a single LibcallImpl for long double functions

Replace the per-format <func>l_{f80|f128|ppcf128} implementations with
a single <func>l implementaton. The concrete type is now derived from
the module/triple's LongDoubleFormat, so this is no longer a static
property.

On targets where long double is double, the l-suffixed functions do
not provide a libcall. This could be fixed in principle, but nothing
would use it in the compiler.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+37-77llvm/include/llvm/IR/RuntimeLibcalls.td
+33-9llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+20-0llvm/lib/IR/RuntimeLibcalls.cpp
+17-1llvm/utils/TableGen/Basic/RuntimeLibcalls.h
+4-10llvm/unittests/IR/RuntimeLibcallsTest.cpp
+12-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+123-977 files not shown
+142-11313 files

LLVM/project d491a36 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrAtomics.td, llvm/test/CodeGen/AArch64 rcpc3.ll atomic-fp-cast.ll

[AArch64] Support direct RCPC3 FP atomic loads and stores

Preserve half, bfloat, float, and double atomic loads and stores
through AtomicExpand for acquire and release orderings, and preserve
sequentially consistent stores, when RCPC3 and NEON are available.

Add SelectionDAG patterns for the RCPC3 LDAPUR and STLUR operations,
including unscaled offsets, and update the existing FP lane patterns to
match the preserved floating-point atomic nodes. Targets without the
required features continue to use integer lowering.
DeltaFile
+182-0llvm/test/CodeGen/AArch64/atomic-fp-store.ll
+118-0llvm/test/CodeGen/AArch64/atomic-fp-load.ll
+65-8llvm/lib/Target/AArch64/AArch64InstrAtomics.td
+45-5llvm/test/CodeGen/AArch64/atomic-fp-cast.ll
+20-12llvm/test/CodeGen/AArch64/rcpc3.ll
+9-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+439-256 files

LLVM/project a207c14 — clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp CGStmtOpenMP.cpp, clang/test/OpenMP target_loop_promotion.cpp

[NFC] Change strided loop name

Changes strided loop to be named grid-stride loop instead for less
ambiguity as stride describes the jump distance in general.
DeltaFile
+26-26clang/test/OpenMP/target_loop_promotion.cpp
+8-8offload/test/offloading/target-no-loop.c
+8-8offload/test/offloading/small_trip_count.c
+7-7clang/lib/CodeGen/CGOpenMPRuntimeGPU.h
+6-5clang/lib/CodeGen/CGStmtOpenMP.cpp
+5-5clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+60-598 files not shown
+75-7314 files

LLVM/project fa32483 — llvm/lib/CodeGen/GlobalISel CombinerHelper.cpp, llvm/test/CodeGen/AArch64 fsh.ll overflow-vec.ll

feat(gisel): mirror trunc/xor/select demanded bits

Mirror SelectionDAG demand propagation, traversal, known-bits folding,
truncation of logical shifts, and XOR narrowing and simplifications.
Respect shared producers, legality and target profitability. Preserve
integer LLTs when narrowing and recognize known-constant shift amounts.

Share shift-amount validation, XOR/shift profitability, and target XOR
constant searches between selectors without an instruction variant.
Enable demanded-bits combining for RISC-V and preserve legal constant
types after legalization. Cover target immediates and shared-mask
bypasses with MIR and code-generation regressions.
DeltaFile
+3,378-4,562llvm/test/CodeGen/RISCV/GlobalISel/wide-scalar-shift-by-byte-multiple-legalization.ll
+508-508llvm/test/CodeGen/AArch64/overflow-vec.ll
+951-0llvm/test/CodeGen/AArch64/GlobalISel/combine-simplify-demanded-bits-trunc-xor-select.mir
+365-365llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+292-43llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+159-172llvm/test/CodeGen/AArch64/fsh.ll
+5,653-5,65045 files not shown
+6,742-6,57151 files

LLVM/project 8b5f9c4 — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP depobj-construct-v60.f90

Handle alternative syntax of DEPOBJ
DeltaFile
+50-0flang/test/Semantics/OpenMP/depobj-construct-v60.f90
+12-0flang/lib/Semantics/check-omp-structure.cpp
+62-02 files

LLVM/project 5882e96 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrAtomics.td, llvm/test/CodeGen/AArch64 sincos-stack-slots.ll v8.4-atomic.ll

[AArch64] Support direct relaxed FP atomic loads and stores

This patch preserves half, bfloat, float, and double atomic loads and
stores through AtomicExpand when they use unordered or monotonic
ordering and the target supports floating point.

It adds SelectionDAG patterns that select the accesses directly in the
floating-point register bank. Unsupported targets, stronger orderings,
and stores carrying memory hints continue to use integer lowering.
DeltaFile
+116-32llvm/lib/Target/AArch64/AArch64InstrAtomics.td
+68-0llvm/test/CodeGen/AArch64/atomic-fp-cast.ll
+41-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+16-16llvm/test/CodeGen/AArch64/relaxed-fp-atomics.ll
+8-8llvm/test/CodeGen/AArch64/v8.4-atomic.ll
+3-4llvm/test/CodeGen/AArch64/sincos-stack-slots.ll
+252-601 files not shown
+256-607 files

LLVM/project e47ac8d — lldb/source/Plugins/TypeSystem/Fortran TypeSystemFortran.h FortranTypes.cpp, lldb/unittests/Symbol TestTypeSystemFortran.cpp

[lldb][Fortran] Added support for functions in TypeSystemFortran and added tests for them
DeltaFile
+98-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+53-0lldb/unittests/Symbol/TestTypeSystemFortran.cpp
+36-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.h
+35-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.cpp
+15-18lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+237-185 files

LLVM/project 76a9ff5 — llvm/include/llvm/IR RuntimeLibcallsImpl.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Emit signatures per libcall implementation

Index the signature table by RTLIB::LibcallImpl instead of
RTLIB::Libcall. RuntimeLibcallImpl inherits the signature of the
libcall it provides by default, but an implementation can now override
it.  This will help avoid having multiple copies of the same libfunc
for every long double type.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+14-6llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+9-8llvm/test/TableGen/RuntimeLibcallEmitter.td
+5-6llvm/test/TableGen/RuntimeLibcallEmitter-vector-mask-argument.td
+2-2llvm/lib/IR/RuntimeLibcalls.cpp
+2-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+32-225 files

LLVM/project 2b1813f — llvm/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView BUILD.gn

[gn build] Port 841a3c559da0 (#233832)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/DebugInfo/CodeView/BUILD.gn
+1-01 files

LLVM/project 69b2a24 — llvm/test/CodeGen/SPIRV/debug-info debug-lexical-block-discriminator.ll debug-scope-lexical-block-file.ll

[SPIRV] Drop --verify-machineinstrs from new lexical-block RUN lines.

The machine verifier already runs on the buildbots.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+2-2llvm/test/CodeGen/SPIRV/debug-info/debug-scope-lexical-block-file.ll
+1-1llvm/test/CodeGen/SPIRV/debug-info/debug-lexical-block-discriminator.ll
+3-32 files

LLVM/project f792e9f — llvm/test/CodeGen/SPIRV/debug-info debug-composite-parent-debuginfonone.ll

Fix test that required a specific emission order.
DeltaFile
+22-20llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+22-201 files

LLVM/project 51ae9df — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-scope-lexical-block-file.ll debug-lexical-block-discriminator.ll

[SPIRV] Emit DebugLexicalBlockDiscriminator for a DILexicalBlockFile.

A location scoped at a DILexicalBlockFile was emitted as a DebugScope of the compilation unit, so the discriminator did not round-trip.
Use the discriminator as the DebugScope operand, matching SPIRV-LLVM-Translator.
DeltaFile
+40-27llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+67-0llvm/test/CodeGen/SPIRV/debug-info/debug-lexical-block-discriminator.ll
+17-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+7-5llvm/test/CodeGen/SPIRV/debug-info/debug-scope-lexical-block-file.ll
+131-384 files

LLVM/project c9c5fcd — llvm/test/CodeGen/SPIRV/debug-info debug-type-composite-self-pointer-forward-refs.ll

[SPIRV] Expect no unlisted DebugTypeMember in the self-pointer forward-refs test.

Without forward references, member next is no longer emitted after S and
its pointer, since S cannot list it.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+3-7llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+3-71 files

LLVM/project d1c3cab — llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-typedef-base-debuginfonone.ll

[SPIRV] Drop --verify-machineinstrs from new forward-ref tests.

The machine verifier already runs on the buildbots.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+6-6llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+18-184 files

LLVM/project 94c1411 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-typedef-base-debuginfonone.ll

[SPIRV] Forward-reference debug scopes with a reserved result id.

Visiting a scope reserves its result id. With SPV_KHR_relaxed_extended_instruction a back edge uses that id through OpExtInstWithForwardRefsKHR, and a later failure defines it as DebugInfoNone when an emitted instruction already named it.
Without the extension the edge is dropped and a later walk can retry the scope.
DeltaFile
+93-13llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+55-0llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+55-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+52-0llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+42-0llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+26-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+323-191 files not shown
+326-207 files

LLVM/project e53e84c — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-type-composite-self-pointer-forward-refs.ll

[SPIRV] Gate debug-scope forward references behind a flag.

-spirv-debug-scope-forward-refs defaults to off.
DeltaFile
+15-7llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+4-10llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+6-4llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+4-3llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+4-3llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+2-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+35-286 files

LLVM/project 344e4e4 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp

[SPIRV] Simplify the module-scope debug scope walk.

getOrCreateDebugScope emits each scope after its dependencies, so the
walk does not need a fixed order between scope kinds. Walk lexical
blocks, types and subprograms in a single loop, and keep subprogram
declarations and definitions in one container.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+4-19llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+2-7llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+6-262 files

LLVM/project 90c99ca — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-type-composite-self-pointer.ll debug-global-variable-skip-static-member.ll

[SPIRV] Emit DebugTypeMember only from its DebugTypeComposite.

DebugTypeMember has no Parent operand, so the composite is the only
instruction that lists it. Emitting a member from the type walk, or
from a static member declaration, after its composite left a
DebugTypeMember that the composite did not list.

Drop members from the type walk and only look up the static member
declaration of a global variable.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+26-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-member-static-self-pointer.ll
+26-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-member-static-int.ll
+7-4llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+4-5llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-skip-static-member.ll
+3-3llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer.ll
+66-125 files

LLVM/project 1e6471b — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

[SPIRV] Resolve a static member declaration through getOrCreateDebugScope.
DeltaFile
+3-2llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+3-21 files

LLVM/project fde2ee5 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-global-variable-skip-static-member.ll

[SPIRV] Emit DebugTypeMember through getOrCreateDebugScope.
DeltaFile
+19-6llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-skip-static-member.ll
+11-8llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+6-7llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+36-213 files

LLVM/project a1d1759 — llvm/lib/IR DebugInfo.cpp, llvm/test/DebugInfo/Generic debuginfofinder-global-variable-declaration.ll

[DebugInfo] Visit static data member declarations in DebugInfoFinder.

types() skipped the class of a static data member when the class was
only reachable through the global variable's declaration.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+23-0llvm/test/DebugInfo/Generic/debuginfofinder-global-variable-declaration.ll
+1-0llvm/lib/IR/DebugInfo.cpp
+24-02 files

LLVM/project 89cf9a0 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp

[SPIRV] Emit each debug scope from getOrCreateDebugScope.

Handlers return the opcode and the operands. getOrCreateDebugScope writes that instruction with a fresh id.
DeltaFile
+167-173llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+123-93llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+290-2662 files

LLVM/project ae12219 — llvm/test/CodeGen/SPIRV/debug-info debug-type-function-void-prototypes.ll

[SPIRV] Reject an extra DebugTypeFunction in the void prototype test.

CHECK-COUNT-2 still passes if a third prototype is emitted.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+1-1llvm/test/CodeGen/SPIRV/debug-info/debug-type-function-void-prototypes.ll
+1-11 files

LLVM/project 5790b5d — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-type-function-void-prototypes.ll

[SPIRV] Drop the DebugTypeFunction operand cache.

Each DISubroutineType is already emitted once through DebugScopeRegs.
DeltaFile
+2-16llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+0-11llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+3-2llvm/test/CodeGen/SPIRV/debug-info/debug-type-function-void-prototypes.ll
+5-293 files

LLVM/project bc306db — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-function-declaration-composite-scope.ll

[SPIRV] Drop the per-kind NSDI type vectors.

Replace partitionTypes and the seven type lists with the type list from DebugInfoFinder.
DeltaFile
+44-89llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+1-17llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-function-declaration-composite-scope.ll
+49-1103 files

LLVM/project 27a25f4 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h

[SPIRV] Use the default SmallVector size for DebugTypes.

The inline capacity was not measured, so leave it to SmallVector.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+1-11 files