LLVM/project 6b07a4dclang/lib/Parse ParseExprCXX.cpp ParseTentative.cpp, clang/test/Parser ms-lambda-capture.clcpp ms-lambda-capture.cpp

[clang] Disambiguate lambdas from Microsoft attributes (#214247)

With -fms-extensions, a CUDA/HIP lambda capture list can be consumed as
a Microsoft attribute list. This causes attributed lambdas used in
direct initialization to be misparsed as function declarators.

Tentatively inspect the tokens following the capture list and any
trailing attributes to identify lambdas before parsing Microsoft
attributes.

Assisted by: Cursor / Claude Opus 4.8
DeltaFile
+87-0clang/test/Parser/ms-lambda-capture.hip
+32-0clang/lib/Parse/ParseTentative.cpp
+25-0clang/test/Parser/ms-lambda-capture.cpp
+20-0clang/test/Parser/ms-lambda-capture.clcpp
+11-8clang/lib/Parse/ParseExprCXX.cpp
+9-0clang/test/ParserHLSL/ms-lambda-capture.hlsl
+184-82 files not shown
+196-88 files

LLVM/project 9028ff1libc/src/__support/OSUtil/linux/syscall_wrappers clone.h, libc/src/__support/OSUtil/linux/syscall_wrappers/aarch64 clone.h

[libc] Implement clone(2) and use it in thread spawning (#224257)

This patch implements an internal clone syscall wrapper and uses it both
to implement the public clone(2) entry point and to spawn new threads in
libc's thread implementation.

Previously, thread creation in thread.cpp invoked the raw SYS_clone
syscall directly, requiring target-specific inline assembly or register
variables and subtle tricks with __builtin_frame_address to pass
arguments to start_thread in the newly spawned thread.

By introducing an inline assembly clone wrapper that sets up func and
arg on the child stack and jumps to the entry function upon clone
returning in the child, we can simplify start_thread to a normal
function taking a single void * argument and eliminate the frame pointer
hacks as well as the need to compile thread.cpp with
-fno-omit-frame-pointer or optimizations.

The public clone(2) entrypoint delegates to this wrapper after unpacking

    [16 lines not shown]
DeltaFile
+194-0libc/test/src/sched/linux/clone_test.cpp
+19-90libc/src/__support/threads/linux/thread.cpp
+88-0libc/src/sched/linux/clone.cpp
+72-0libc/src/__support/OSUtil/linux/syscall_wrappers/clone.h
+68-0libc/src/__support/OSUtil/linux/syscall_wrappers/riscv/clone.h
+60-0libc/src/__support/OSUtil/linux/syscall_wrappers/aarch64/clone.h
+501-9014 files not shown
+691-10120 files

LLVM/project 975b5d2clang/test/Driver systemz-features.cpp, clang/test/Sema zvector.c

[SystemZ][z/OS] Extend systemz-features.cpp and zvector.c with z/OS RUN lines (#224733)

Add `s390x-ibm-zos` RUN lines to
`clang/test/Driver/systemz-features.cpp`
covering the default, `-mhtm`/`-mno-htm`, and `-mvx`/`-mno-vx` cases.
The `-mvx` z/OS lines require `-march=arch11` because the default z/OS
CPU (zEC12) pre-dates vector support.

Add a second RUN in `clang/test/Sema/zvector.c` using triple
`s390x-ibm-zos` with `-target-cpu z13` so the file is exercised under
the z/OS code path.

These test extensions were carved out from
https://github.com/llvm/llvm-project/pull/223026 per reviewer request
(@uweigand): the extra test runs are good additions but are not related
to the i128 XPLINK64 change.
DeltaFile
+9-0clang/test/Driver/systemz-features.cpp
+4-0clang/test/Sema/zvector.c
+13-02 files

LLVM/project 36435efflang/test/Semantics/OpenMP ordered03.f90, llvm/include/llvm/Frontend/OpenMP OMP.td

[flang][OpenMP] ORDERED clause is allowed on DO in 4.5+

Several compound directives containing DO were missing the ORDERED
clause in the set of allowed (once) clauses.
DeltaFile
+6-0llvm/include/llvm/Frontend/OpenMP/OMP.td
+0-1flang/test/Semantics/OpenMP/ordered03.f90
+6-12 files

LLVM/project 1e635d0orc-rt/lib/bedrock/sys/windows CPUFeatures.cpp, orc-rt/test/unit/bedrock/sys CPUFeaturesTest.cpp

[orc-rt] Implement Windows CPU feature detection (#224516)

Adds Windows CPU feature detection for ORC-RT.

Currently supports x86-64 using the Windows/MSVC CPU feature interfaces.
Additional architectures can be added as needed.
DeltaFile
+54-1orc-rt/lib/bedrock/sys/windows/CPUFeatures.cpp
+12-0orc-rt/test/unit/bedrock/sys/CPUFeaturesTest.cpp
+66-12 files

LLVM/project bcd61fdllvm/lib/Target/PISA PISADefines.h

Add comment about the spelling/case of ri and uc
DeltaFile
+1-0llvm/lib/Target/PISA/PISADefines.h
+1-01 files

LLVM/project b569f8dflang/lib/Optimizer/Dialect FIRType.cpp, flang/test/Lower/OpenMP/DelayedPrivatization target-firstprivate-nested-allocatable-mapper.f90

[Flang][FIR] Handle SequenceTypes in isRecordWithAllocatableMember (#224048)

Currently isRecordWithAllocatableMember does not handle sequence types,
either at the top level on the input type or in subsequent nestings, it
will effectively skip them. This is quite different to how
isRecordWithDescriptorMember handles these cases, as it does in fact
unwrap sequence types to correctly dictate if there are descriptor
members inside of a record type.

This PR simply aims to align the behaviour with
isRecordWithDescriptorMember, as there are several locations where
isRecordWithAllocatableMember is being used and the expectation is that
it will indicate if there's an allocatable member inside of the record
type irrespective of sequence types being part of the equation.
DeltaFile
+42-0flang/test/Lower/OpenMP/DelayedPrivatization/target-firstprivate-nested-allocatable-mapper.f90
+2-0flang/lib/Optimizer/Dialect/FIRType.cpp
+44-02 files

LLVM/project f4c0229clang/test/CodeGen builtin-clear-padding-codegen.c, clang/test/CodeGenCXX builtin-clear-padding-codegen.cpp

Merge branch 'users/zGoldthorpe/wg2wf-nodma/precommit' into users/zGoldthorpe/wg2wf-nodma/simple-demote
DeltaFile
+11,197-135llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
+4,586-1,088clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
+2,985-612clang/test/CodeGen/builtin-clear-padding-codegen.c
+1,847-1,277llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll
+1,413-1,413clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
+1,403-1,403clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
+23,431-5,9283,568 files not shown
+157,017-77,5973,574 files

LLVM/project 785377dclang/test/CodeGen builtin-clear-padding-codegen.c, clang/test/CodeGenCXX builtin-clear-padding-codegen.cpp

Merge branch 'main' into users/zGoldthorpe/wg2wf-nodma/precommit
DeltaFile
+11,197-135llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
+4,586-1,088clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
+2,985-612clang/test/CodeGen/builtin-clear-padding-codegen.c
+1,847-1,277llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll
+1,413-1,413clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
+1,403-1,403clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
+23,431-5,9283,568 files not shown
+157,017-77,5973,574 files

LLVM/project fd4bcc5llvm/lib/Target/AMDGPU SIFoldOperands.cpp, llvm/test/CodeGen/AMDGPU clamp-omod-special-case.mir

[AMDGPU] Do not fold clamp when only one max source has modifiers (#224517)

Fix isClamp to bail if either max source has a modifier, not only when
both do. Previously `max(x, |x|)` was wrongly folded as if it were x
DeltaFile
+52-0llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
+1-1llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+53-12 files

LLVM/project 30774acclang/lib/Driver/ToolChains Linux.cpp, clang/test/Driver linux-ld.c

[clang][Driver] Use --no-rosegment for LoongArch Linux

Pass --no-rosegment when linking LoongArch Linux targets so that read-only
code remains in the first LOAD segment, matching the GNU ld layout.

This allows Linux to make more effective use of file-backed PMD mappings and
reduces iTLB misses.
DeltaFile
+12-0clang/test/Driver/linux-ld.c
+6-0clang/lib/Driver/ToolChains/Linux.cpp
+18-02 files

LLVM/project 95b14f3libsycl/test/usm memset.cpp

[libsycl][lit] Disable usm/memset.cpp (#225093)

Sporadically failing, see
https://github.com/llvm/llvm-project/issues/225092.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+2-0libsycl/test/usm/memset.cpp
+2-01 files

LLVM/project c6ff3fcllvm/test/MC/AMDGPU gfx12_asm_vop3_err.s gfx12_asm_features.s

[AMDGPU][MC] Upstream gfx11/gfx12 true16 assembler test coverage

Upstream new assembler test cases, covering true16 .l/.h operands and op_sel
handling that had no upstream coverage.
DeltaFile
+75-0llvm/test/MC/AMDGPU/gfx12_asm_vop1_t16_err.s
+69-0llvm/test/MC/AMDGPU/gfx11_asm_opsel.s
+59-0llvm/test/MC/AMDGPU/gfx11_asm_t16.s
+6-0llvm/test/MC/AMDGPU/gfx11_asm_vop3_features.s
+3-0llvm/test/MC/AMDGPU/gfx12_asm_features.s
+2-0llvm/test/MC/AMDGPU/gfx12_asm_vop3_err.s
+214-06 files

LLVM/project 5e3b648llvm/test/MC/Disassembler/AMDGPU gfx12_dasm_vop2.txt gfx12_dasm_vop3_from_vop2_dpp8.txt

[AMDGPU][MC] Upstream gfx12 true16 disassembler test coverage

Upstream new gfx12 disassembler test cases, covering true16 operand (.l/.h)
and op_sel decoding for f16 opcodes that had no upstream coverage:
DeltaFile
+168-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
+84-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
+84-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1_dpp8.txt
+84-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1_dpp16.txt
+84-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1.txt
+70-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop2.txt
+574-05 files not shown
+711-011 files

LLVM/project 8bc145fllvm/test/MC/Disassembler/AMDGPU gfx11_dasm_vop2_dpp16.txt gfx11_dasm_vop3_features.txt

[AMDGPU][MC] Upstream gfx11 true16 disassembler test coverage (#223823)

Upstream new gfx11 disassembler test cases, mostly covering true16
operand
(.l/.h) and op_sel decoding that had no upstream coverage.
DeltaFile
+203-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vop2.txt
+203-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vop2.txt
+158-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
+78-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop2-real16.txt
+66-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_features.txt
+60-0llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp16.txt
+768-06 files not shown
+922-312 files

LLVM/project 922ea1dflang/unittests/Evaluate CharacterValueTest.cpp

Merge commit '2e5e8c9714710982d8535eeacaee17ace0d93dd5' into HEAD
DeltaFile
+4-4flang/unittests/Evaluate/CharacterValueTest.cpp
+4-41 files

LLVM/project 2e5e8c9flang/unittests/Evaluate CharacterValueTest.cpp

Silence warning

clang-format
DeltaFile
+4-4flang/unittests/Evaluate/CharacterValueTest.cpp
+4-41 files

LLVM/project 4a1f5a7llvm/lib/Target/PISA CMakeLists.txt PISACacheCtrlMMRA.h

Move definitions to PISACacheCtrlMMRA.cpp
DeltaFile
+76-0llvm/lib/Target/PISA/PISACacheCtrlMMRA.cpp
+5-61llvm/lib/Target/PISA/PISACacheCtrlMMRA.h
+1-0llvm/lib/Target/PISA/CMakeLists.txt
+82-613 files

LLVM/project 1bd4358llvm/lib/Target/PISA PISAUtils.h

Remove IRBuilder.h include
DeltaFile
+0-1llvm/lib/Target/PISA/PISAUtils.h
+0-11 files

LLVM/project 55af1dcoffload/include device.h, offload/libompaccsupport PluginManager.cpp device.cpp

[offload][omp] Move OpenMP KLE to libomptarget

Move preparations related to OpenMP KLE and
dynamicCGroupMem fallback out of the plugins and
into libomptarget.

Resructure Device::launch as it grew too large.
DeltaFile
+290-60offload/libompaccsupport/device.cpp
+2-144offload/plugins-nextgen/common/src/PluginInterface.cpp
+5-50offload/plugins-nextgen/common/include/PluginInterface.h
+1-1offload/plugins-nextgen/common/src/RecordReplay.cpp
+1-0offload/libompaccsupport/PluginManager.cpp
+1-0offload/include/device.h
+300-2556 files

LLVM/project 5f7d9f8offload/include device.h, offload/libompaccsupport device.cpp

[offload][omp] Move strict threads & groups computation to libomptarget
DeltaFile
+178-3offload/libompaccsupport/device.cpp
+0-147offload/plugins-nextgen/common/src/PluginInterface.cpp
+9-63offload/plugins-nextgen/common/include/PluginInterface.h
+40-1offload/include/device.h
+9-9offload/test/offloading/ompx_bare_gridsize.c
+1-1offload/test/offloading/ompx_bare_multi_dim.cpp
+237-2242 files not shown
+238-2278 files

LLVM/project 6e72176offload/include PluginManager.h, offload/libompaccsupport PluginManager.cpp

Remove host special handling after compiler changes
DeltaFile
+2-11offload/libompaccsupport/PluginManager.cpp
+0-6offload/include/PluginManager.h
+2-172 files

LLVM/project 8bc1cbbllvm/include/llvm/ExecutionEngine/Orc/Shared/SPSCI SimpleNativeMemoryMapSPSCI.h, llvm/unittests/ExecutionEngine/Orc EPCGenericJITLinkMemoryManagerTest.cpp

[ORC] Mangle SimpleNativeMemoryMap CI names as C (#225074)

Flip the SimpleNativeMemoryMap memory-manager descriptors (instance +
reserve/initialize/deinitialize/release) from Verbatim to C, so their
names carry the target's C mangling. The controller and in-tree executor
mangle the same specs, and no other provider defines these names, so
they stay in sync; nothing else defines these names.

Also update the CreateFromExecutionSession test to use the process
triple so that its name mangling matches the target mangling above.
DeltaFile
+7-7llvm/include/llvm/ExecutionEngine/Orc/Shared/SPSCI/SimpleNativeMemoryMapSPSCI.h
+2-1llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
+9-82 files

LLVM/project 674acdallvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.dot.ll

[AMDGPU][InstCombine] Fold zero dot operands to accumulator

Fold AMDGPU dot intrinsics when either operand is zero.

`dot(a, 0) = 0` and `dot(0, b) = 0`, so replace the intrinsic with its accumulator.
This avoids unrelated clamp and add/sub reassociation cases.
DeltaFile
+15-30llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+3-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+18-302 files

LLVM/project cd5b834llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.dot.ll

[AMDGPU][InstCombine] Canonicalize dot constant operands

Move constant dot product source operands to the right hand side
and add tests for signed and unsigned dot intrinsics.
DeltaFile
+12-12llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+9-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+21-122 files

LLVM/project 412c123llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.dot.ll

[AMDGPU][InstCombine] Fold constant add/sub into the dot accumulator

`amdgcn.{s,u}dot{2,4,8}(a, b, C) +/- K -> dot(a, b, C +/- K)` when both the
accumulator C and K are constants. The new constant is computed with
wrapping APInt arithmetic to match the non-clamping accumulate.

Only applies when clamp is false (the saturating accumulate does not
reassociate) and the dot has a single use. K - dot is left alone since it
would need the dot product negated.
DeltaFile
+33-66llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+38-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+71-662 files

LLVM/project fc19477llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.dot.ll

Add no use test
DeltaFile
+9-0llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+9-01 files

LLVM/project 1dfe26ellvm/lib/LTO LTOCodeGenerator.cpp, llvm/test/LTO/ARM runtime-library-subtarget.ll

LTO: Stop overwriting the merged module's DataLayout (#223987)

LTOCodeGenerator::optimize() unconditionally reset the merged module's
DataLayout from TargetMachine::createDataLayout(). The merged module
already carries the correct DataLayout since IRMover propagates the source
module's layout into the empty destination. The module should be the source of
truth for its DataLayout.

Recomputing it from the TargetMachine is also latently wrong, since the
DataLayout depends on the target-abi module flag which the
TargetMachine's cached DataLayout cannot account for.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+26-0llvm/test/LTO/RISCV/merged-module-datalayout.ll
+8-2llvm/lib/LTO/LTOCodeGenerator.cpp
+1-1llvm/test/LTO/X86/linkonce_odr_func.ll
+1-1llvm/test/LTO/X86/cfi_endproc.ll
+1-1llvm/test/LTO/ARM/runtime-library-subtarget.ll
+37-55 files

LLVM/project 6345570clang/test/OpenMP teams_distribute_parallel_for_simd_messages.cpp teams_distribute_parallel_for_simd_loop_messages.cpp, llvm/include/llvm/Frontend/OpenMP OMP.td

[clang][OpenMP] ORDERED clause is allowed on FOR in 4.5+

Several compound directives containing FOR were missing the ORDERED
clause in the set of allowed (once) clauses.
DeltaFile
+6-0llvm/include/llvm/Frontend/OpenMP/OMP.td
+1-1clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
+1-1clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp
+1-1clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp
+1-1clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp
+1-1clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
+11-54 files not shown
+15-910 files

LLVM/project 4d2312boffload/include device.h, offload/libompaccsupport PluginManager.cpp device.cpp

[offload][omp] Move OpenMP KLE to libomptarget

Move preparations related to OpenMP KLE and
dynamicCGroupMem fallback out of the plugins and
into libomptarget.

Resructure Device::launch as it grew too large.
DeltaFile
+290-60offload/libompaccsupport/device.cpp
+2-144offload/plugins-nextgen/common/src/PluginInterface.cpp
+5-50offload/plugins-nextgen/common/include/PluginInterface.h
+1-1offload/plugins-nextgen/common/src/RecordReplay.cpp
+1-0offload/libompaccsupport/PluginManager.cpp
+1-0offload/include/device.h
+300-2556 files