LLVM/project f9c9f94llvm/lib/Target/AArch64 AArch64InstrInfo.cpp AArch64PrologueEpilogue.cpp, llvm/test/CodeGen/AArch64 sign-return-address-pauthlr-slh.ll

[AArch64] Mark X16 as clobbered in PAUTH_EPILOGUE for hint-based PAuthLR (#175991)

When users request branch protection with PAuthLR on targets that do not
support the PAuthLR instructions, the PAUTH_EPILOGUE falls back to using
hint-space instructions. This fallback sequence uses X16 as a temporary
register, but X16 was not listed in the clobber set.

Because Speculative Load Hardening uses X16, this omission made SLH
incompatible with this PAUTH_EPILOGUE path.

Mark X16 as clobbered so the compiler does not assume X16 is preserved
across the epilogue, restoring compatibility with Speculative Load
Hardening and avoiding incorrect register liveness assumptions. The
clobber is added in C++ rather than TableGen, as X16 is only clobbered
when PAuthLR is requested as a branch protection variation and should
not be treated as clobbered unconditionally.
DeltaFile
+103-0llvm/test/CodeGen/AArch64/sign-return-address-pauthlr-slh.ll
+12-3llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+2-5llvm/lib/Target/AArch64/AArch64PrologueEpilogue.cpp
+6-0llvm/lib/Target/AArch64/AArch64InstrInfo.h
+5-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+1-2llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+129-106 files

LLVM/project e027a17llvm/test/CodeGen/SPIRV logical-struct-access.ll

[NFC][SPIR-V] Fix logical-struct-access.ll to pass spirv-val validation (#191792)

OpReturnValue with a pointer type is invalid in SPIR-V Logical
addressing model (Vulkan). The functions in the test return
OpAccessChain results, which are pointers

related to https://github.com/llvm/llvm-project/issues/190736
DeltaFile
+37-27llvm/test/CodeGen/SPIRV/logical-struct-access.ll
+37-271 files

LLVM/project e455e6clibc/fuzzing/string strnlen_s_differential_fuzz.cpp, libc/include string.yaml

[libc] Add Annex K strnlen_s function (#186112)

This patch adds the `strnlen_s` function from Annex K.

In order to reduce duplication between `strnlen` and `strnlen_s`, the
common logic has been extracted to a new internal function which both
now call.

In addition to the function definition, the patch adds a unit test and a
fuzzing test.
DeltaFile
+59-0libc/fuzzing/string/strnlen_s_differential_fuzz.cpp
+57-0libc/test/src/string/strnlen_s_test.cpp
+21-0libc/src/string/strnlen_s.cpp
+21-0libc/src/string/strnlen_s.h
+13-0libc/src/string/CMakeLists.txt
+10-0libc/include/string.yaml
+181-019 files not shown
+223-325 files

LLVM/project dd0c5ebcompiler-rt/test/sanitizer_common lit.common.cfg.py, compiler-rt/test/sanitizer_common/TestCases hard_rss_limit_mb_test.cpp

[TySan][Sanitizer Common] Enable TySan testing in the sanitizer commo… (#191385)

…n test suite

Secondary pr to enable tests after
https://github.com/llvm/llvm-project/pull/183310 enables the features
DeltaFile
+2-2compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cpp
+2-2compiler-rt/test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cpp
+2-2compiler-rt/test/sanitizer_common/TestCases/Linux/allocator_returns_null_std.cpp
+3-0compiler-rt/test/sanitizer_common/lit.common.cfg.py
+3-0compiler-rt/test/sanitizer_common/TestCases/Linux/decorate_proc_maps.cpp
+3-0compiler-rt/test/sanitizer_common/TestCases/Posix/mmap_write_exec.cpp
+15-632 files not shown
+51-3438 files

LLVM/project 848bf3eflang/test/Lower/Intrinsics transpose_opt.f90 ubound.f90

[flang][NFC] Converted five tests from old lowering to new lowering (part 43) (#191753)

Tests converted from test/Lower/Intrinsics: transpose.f90,
transpose_opt.f90, trim.f90, ubound.f90, ubound01.f90
DeltaFile
+11-84flang/test/Lower/Intrinsics/transpose_opt.f90
+31-53flang/test/Lower/Intrinsics/ubound.f90
+9-19flang/test/Lower/Intrinsics/transpose.f90
+9-13flang/test/Lower/Intrinsics/trim.f90
+3-2flang/test/Lower/Intrinsics/ubound01.f90
+63-1715 files

LLVM/project 1c1d0cdmlir/lib/Dialect/LLVMIR/IR LLVMAttrs.cpp, mlir/lib/Target/LLVMIR ModuleImport.cpp

[MLIR][LLVMIR] Handle MDTuple-of-MDStrings module flags (e.g. riscv-isa) (#188741)

The "riscv-isa" LLVM module flag stores its value as an MDTuple
containing MDStrings (e.g. `\!{\!"rv64i2p1", \!"m2p0"}`). Previously,
this fell through the unrecognized-key path in
`convertModuleFlagValueFromMDTuple`, which emitted a warning and dropped
the flag during import.

This patch adds generic handling for MDTuples whose operands are all
MDStrings:
- Import: convert to `ArrayAttr<StringAttr>` in
`convertModuleFlagValueFromMDTuple`
- Export: convert `ArrayAttr<StringAttr>` back to an MDTuple of
MDStrings in `convertModuleFlagValue`, enabling a lossless round-trip
- Verifier: allow `ArrayAttr<StringAttr>` as a valid `ModuleFlagAttr`
value for keys not otherwise handled by specific verifier branches

Fixes #188122

Assisted-by: Claude Code
DeltaFile
+12-2mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
+12-1mlir/lib/Target/LLVMIR/ModuleImport.cpp
+12-0mlir/test/Target/LLVMIR/Import/module-flags.ll
+11-0mlir/test/Target/LLVMIR/llvmir.mlir
+9-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+1-1mlir/test/Dialect/LLVMIR/invalid.mlir
+57-46 files

LLVM/project 65f4e70lldb/docs dil-expr-lang.ebnf, lldb/include/lldb/ValueObject DILEval.h

[lldb] Add binary multiplication, division, remainder to DIL (#187281)

Add binary arithmetic multiplication, division, remainder to DIL.
This patch also passes DILMode to the parser to check if binary
multiplication is allowed by the mode. This cannot be done in the lexer
alone, because it allows token `*` as a dereference operator for legacy
mode, but that token could also be a binary multiplication allowed only
in full mode.
DeltaFile
+99-4lldb/source/ValueObject/DILEval.cpp
+73-0lldb/test/API/commands/frame/var-dil/expr/Arithmetic/TestFrameVarDILArithmetic.py
+35-7lldb/source/ValueObject/DILParser.cpp
+9-4lldb/source/ValueObject/DILLexer.cpp
+9-0lldb/include/lldb/ValueObject/DILEval.h
+6-2lldb/docs/dil-expr-lang.ebnf
+231-175 files not shown
+249-2011 files

LLVM/project f3fce67mlir/test/mlir-tblgen op-format-invalid.td op-format-spec.td, mlir/tools/mlir-tblgen OpFormatGen.cpp

[MLIR][ODS] Error on optional attribute used outside optional group in assemblyFormat (#188726)

Using an optional attribute directly in assemblyFormat (e.g., `$attr
attr-dict`) without wrapping it in an optional group causes the
generated printer to call `printAttribute` with a null `Attribute` when
the attribute is absent. This leads to a crash in the alias initializer
when it calls `getAlias` on a null attribute.

Add a validation check in `OpFormatParser::verifyAttributes` that
detects this pattern and emits a diagnostic error with a helpful note
pointing users to the correct `($attr^)?` syntax.

Fixes #58064

Assisted-by: Claude Code
DeltaFile
+19-0mlir/tools/mlir-tblgen/OpFormatGen.cpp
+6-0mlir/test/mlir-tblgen/op-format-invalid.td
+1-1mlir/test/mlir-tblgen/op-format-spec.td
+26-13 files

LLVM/project a98ecc9lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserClang.cpp DWARFASTParserClang.h, lldb/source/Plugins/TypeSystem/Clang TypeSystemClang.cpp

Revert "[lldb][DWARFASTParserClang] Handle pointer-to-member-data non-type te…" (#191798)

Reverts llvm/llvm-project#189510

Crashes lldb on certain type of debug info. See
https://github.com/llvm/llvm-project/pull/189510#issuecomment-4235929442
for more details.
DeltaFile
+11-94lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
+0-16lldb/test/API/lang/cpp/non-type-template-param-member-ptr/main.cpp
+0-14lldb/test/API/lang/cpp/non-type-template-param-member-ptr/TestCppNonTypeTemplateParamPtrToMember.py
+0-7lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
+0-3lldb/test/API/lang/cpp/non-type-template-param-member-ptr/Makefile
+0-2lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+11-1366 files

LLVM/project 73dd62dlldb/source/Plugins/Process/FreeBSD-Kernel-Core ProcessFreeBSDKernelCore.cpp

[lldb][Process/FreeBSDKernelCore] Improve error handling (#191423)

Improve error handling with the following changes:

- If `kvm_open2()` fails in `DoLoadCore()`, log error with a message
obtained from the function.
- Return false or continue for loop if memory read fails.
- Rename `!error.Success()` to `error.Fail()` for readability (NFC).

Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
DeltaFile
+64-9lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
+64-91 files

LLVM/project d9a9962llvm/lib/DebugInfo/GSYM GsymCreator.cpp

[GSYM] Silence cast warning (#191561)

Previously clang-cl was generating "warning: comparison of integers of
different signs".
DeltaFile
+1-1llvm/lib/DebugInfo/GSYM/GsymCreator.cpp
+1-11 files

LLVM/project 571beb5compiler-rt/cmake config-ix.cmake, compiler-rt/cmake/Modules CompilerRTCompile.cmake

[compiler-rt] clang-cl: skip MSVC external-header probe; -std=c++ for unit-test compiles (#191564)

1. `check_cxx_compiler_flag` marked `COMPILER_RT_HAS_EXTERNAL_FLAG` true
for clang-cl, so `/experimental:external` and `/external:anglebrackets`
were passed and clang-cl warned they were unused. Now only probe with
real MSVC (not Clang); set the flag false otherwise; rely on that in
asan/interception/ubsan.

2. Custom compile lines for unit tests didn’t get C++17, so headers hit
`-Wc++17-extensions` (e.g. `constexpr if` / message-less `static_assert`
in FuzzedDataProvider / asan_fake_stack). Now append
`-std=c++${CMAKE_CXX_STANDARD}` or `-std=c++17` for C++ sources in
`clang_compile()` for both standalone and non-standalone builds.
DeltaFile
+11-0compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+5-1compiler-rt/cmake/config-ix.cmake
+1-3compiler-rt/lib/interception/CMakeLists.txt
+1-3compiler-rt/lib/ubsan/CMakeLists.txt
+1-3compiler-rt/lib/asan/CMakeLists.txt
+19-105 files

LLVM/project 418cf63lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserClang.cpp DWARFASTParserClang.h, lldb/source/Plugins/TypeSystem/Clang TypeSystemClang.cpp

Revert "[lldb][DWARFASTParserClang] Handle pointer-to-member-data non-type (#…"

This reverts commit 103f821cb0977612fbff270df0e81801e8b93ed4.
DeltaFile
+11-94lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
+0-16lldb/test/API/lang/cpp/non-type-template-param-member-ptr/main.cpp
+0-14lldb/test/API/lang/cpp/non-type-template-param-member-ptr/TestCppNonTypeTemplateParamPtrToMember.py
+0-7lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
+0-3lldb/test/API/lang/cpp/non-type-template-param-member-ptr/Makefile
+0-2lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+11-1366 files

LLVM/project 988e00eopenmp/runtime/src kmp_alloc.cpp

[openmp] Silence warnings when building on Windows (#191556)

Fixes unused-but-set globals on non-Unix paths in kmp_alloc.cpp
DeltaFile
+21-20openmp/runtime/src/kmp_alloc.cpp
+21-201 files

LLVM/project 55d7a05mlir/lib/Dialect/SPIRV/Transforms UpdateVCEPass.cpp, mlir/test/Dialect/SPIRV/Transforms vce-deduction.mlir

[MLIR][SPIRV] Deduce Shader capability for DescriptorSet/Binding decorations (#188743)

UpdateVCEPass only queried capabilities via QueryCapabilityInterface and
SPIRV type capabilities, but did not check capabilities implied by
decoration attributes on ops. Specifically, the DescriptorSet and
Binding decorations—represented by the `binding` and `descriptor_set`
attributes on `spirv.GlobalVariable`—require the `Shader` capability per
the SPIR-V spec Decoration table, but this was not deduced.

Add an explicit check in UpdateVCEPass: when a `spirv.GlobalVariable`
has a `binding` or `descriptor_set` attribute, require the `Shader`
capability.

Part of #168357

Assisted-by: Claude Code
DeltaFile
+13-1mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp
+11-0mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir
+24-12 files

LLVM/project 137c53cclang/test/CodeGen 2004-02-13-Memset.c

[clang][test] Fix 32-bit bot failures after cc419f185e13 (#191551)

Use `{{.*}}` instead of `i64` for `memset` size type, as 32-bit
platforms use `i32`.
DeltaFile
+2-2clang/test/CodeGen/2004-02-13-Memset.c
+2-21 files

LLVM/project 8dcd471llvm/docs LangRef.rst

[LangRef] Correct description of predicate.enable MD (#191496)

The documentation incorrectly stated that this metadata enables/disables
vectorization, but it actually controls predication. 
Also clarify that enabling predication implicitly enables vectorization.
DeltaFile
+4-2llvm/docs/LangRef.rst
+4-21 files

LLVM/project 5667b93llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVTypeInst.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_bindless_images bindless_images_generic.ll

[SPIR-V] Add Int64ImageEXT capability for OpTypeImage with 64-bit integer sampled type (#190742)

Fix spirv-val failure:
```
error: line 20: Capability Int64ImageEXT is required when using Sampled Type of 64-bit int
  %spirv_Image = OpTypeImage %ulong 3D 0 0 0 0 Unknown ReadOnly
```

Detect when OpTypeImage uses a 64-bit integer as its sampled type and
automatically add the Int64ImageEXT capability and
SPV_EXT_shader_image_int64 extension

related to https://github.com/llvm/llvm-project/issues/190736
DeltaFile
+10-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+6-3llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_bindless_images/bindless_images_generic.ll
+9-0llvm/lib/Target/SPIRV/SPIRVTypeInst.cpp
+4-0llvm/lib/Target/SPIRV/SPIRVTypeInst.h
+2-1llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
+31-45 files

LLVM/project 4c3ef83llvm/include/llvm/IR PatternMatch.h, llvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp

[NFC][SPIR-V] Use PatternMatch combinators in SPIRVEmitIntrinsics (#189554)

Replace `dyn_cast<IntrinsicInst> + getIntrinsicID()` chains with
PatternMatch combinators where applicable
DeltaFile
+23-67llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+32-0llvm/unittests/IR/PatternMatch.cpp
+21-0llvm/include/llvm/IR/PatternMatch.h
+76-673 files

LLVM/project 6dbf9d1llvm/include/llvm/ExecutionEngine/Orc ExecutorProcessControl.h, llvm/lib/ExecutionEngine/Orc EPCIndirectionUtils.cpp

[ORC] Forward declare MemoryAccess in ExecutorProcessControl.h. (#191778)
DeltaFile
+1-1llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
+1-0llvm/lib/ExecutionEngine/Orc/EPCIndirectionUtils.cpp
+2-12 files

LLVM/project 28332c8llvm/include/llvm/Transforms/Scalar NaryReassociate.h, llvm/lib/Transforms/Scalar NaryReassociate.cpp

review
DeltaFile
+5-1llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
+1-0llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+6-12 files

LLVM/project 82dc058llvm/include/llvm/Transforms/Scalar NaryReassociate.h, llvm/lib/Transforms/Scalar NaryReassociate.cpp

review: address suggestion
DeltaFile
+8-6llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+1-1llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
+9-72 files

LLVM/project d10df4dllvm/lib/Transforms/Scalar NaryReassociate.cpp

review: address suggestions
DeltaFile
+16-15llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+16-151 files

LLVM/project 3fefe03llvm/include/llvm/Transforms/Scalar NaryReassociate.h

Update llvm/include/llvm/Transforms/Scalar/NaryReassociate.h

Co-authored-by: Jay Foad <jay.foad at amd.com>
DeltaFile
+1-1llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
+1-11 files

LLVM/project f8bee03llvm/lib/Transforms/Scalar NaryReassociate.cpp

review: address suggestions
DeltaFile
+21-29llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+21-291 files

LLVM/project 6589436llvm/include/llvm/Transforms/Scalar NaryReassociate.h, llvm/lib/Transforms/Scalar NaryReassociate.cpp

[NaryReassociate] Make uniformity-aware to prefer grouping uniform values
DeltaFile
+96-3llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+5-5llvm/test/Transforms/NaryReassociate/AMDGPU/nary-add-uniform.ll
+6-3llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
+3-1llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
+110-124 files

LLVM/project 62b9202llvm/lib/Transforms/Scalar NaryReassociate.cpp

delay fetching unifromity for target which don't need it
DeltaFile
+10-7llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+10-71 files

LLVM/project 820d543llvm/test/Transforms/NaryReassociate/AMDGPU nary-add-uniform.ll

[NaryReassociate][AMDGPU] Pre-commit test for uniformity-aware reassociation (NFC)
DeltaFile
+319-0llvm/test/Transforms/NaryReassociate/AMDGPU/nary-add-uniform.ll
+319-01 files

LLVM/project f7ccea0llvm/include/llvm/ADT GenericUniformityImpl.h, llvm/include/llvm/Analysis UniformityAnalysis.h

refactor: update variable names in uniformity analysis
DeltaFile
+35-35llvm/include/llvm/ADT/GenericUniformityImpl.h
+36-33llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
+19-19llvm/lib/Analysis/UniformityAnalysis.cpp
+4-4llvm/include/llvm/Analysis/UniformityAnalysis.h
+4-3llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
+98-945 files

LLVM/project 72d3533llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64 bitcast.ll

[AArch64][GISel] Clamp bitcast to v2i64 (#191360)

This helps to not lower, improving the number of nodes that we expand
into and improving the quality of the generated code.

Originally a part of #177158 by Ryan Cowan
DeltaFile
+0-16llvm/test/CodeGen/AArch64/bitcast.ll
+1-0llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+1-162 files