LLVM/project 30d1324llvm/test/Transforms/LoopStrengthReduce/X86 pr47776-do-not-apply-info-from-guards-to-addrecs.ll

fix

Created using spr 1.3.7
DeltaFile
+4-4llvm/test/Transforms/LoopStrengthReduce/X86/pr47776-do-not-apply-info-from-guards-to-addrecs.ll
+4-41 files

LLVM/project 56434aallvm CMakeLists.txt

Bump minimum required sphinx Python to 3.8 (#203963)

There seems to be de-facto use of at least 3.6 in docs, namely:

* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py

I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.

Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
DeltaFile
+1-1llvm/CMakeLists.txt
+1-11 files

LLVM/project c3b19afllvm/test/Transforms/LoopStrengthReduce pr25541.ll, llvm/test/Transforms/LoopStrengthReduce/X86 normalization-during-scev-expansion.ll 2011-12-04-loserreg.ll

fix

Created using spr 1.3.7
DeltaFile
+4-4llvm/test/Transforms/LoopStrengthReduce/X86/normalization-during-scev-expansion.ll
+3-3llvm/test/Transforms/LoopStrengthReduce/pr25541.ll
+2-2llvm/test/Transforms/LoopStrengthReduce/X86/2011-12-04-loserreg.ll
+2-2llvm/test/Transforms/LoopStrengthReduce/X86/eh-insertion-point.ll
+2-2llvm/test/Transforms/LoopStrengthReduce/X86/eh-insertion-point-2.ll
+13-135 files

LLVM/project 19cc920llvm/lib/Support UnicodeNameToCodepointGenerated.cpp, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll

update

Created using spr 1.3.7
DeltaFile
+31,001-87,165llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+15,519-26,130llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+21,083-19,883llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+12,134-24,576llvm/test/CodeGen/RISCV/clmul.ll
+12,954-16,010llvm/test/CodeGen/Thumb2/mve-clmul.ll
+116,564-194,68726,296 files not shown
+2,079,665-1,112,85426,302 files

LLVM/project 20b01a6llvm/lib/Support UnicodeNameToCodepointGenerated.cpp, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+31,001-87,165llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+15,519-26,130llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+21,083-19,883llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+12,134-24,576llvm/test/CodeGen/RISCV/clmul.ll
+12,954-16,010llvm/test/CodeGen/Thumb2/mve-clmul.ll
+116,564-194,68726,260 files not shown
+2,079,329-1,112,46226,266 files

LLVM/project 738fecbllvm/test/tools/llvm-profgen aarch64-disassemble-all-features.test, llvm/tools/llvm-profgen ProfiledBinary.cpp

[llvm-profgen] Enable all AArch64 instructions for disassembly (#204619)

llvm-profgen builds its MCSubtargetInfo from
`ObjectFile::getFeatures()`. For AArch64 ELF objects this often produces
an empty feature set, so the disassembler falls back to the baseline
Armv8.0-A ISA and rejects valid feature-gated instructions such as LSE
atomics and RCPC loads.

`llvm-objdump` already handles this by [adding +all for AArch64
disassembly](https://github.com/llvm/llvm-project/blob/1e2d1bbc12f6a5f5931c77d39894ee1b8679f5f8/llvm/tools/llvm-objdump/llvm-objdump.cpp#L2823-L2824)
when neither -mattr nor -mcpu is specified. Match that behavior in
`llvm-profgen` so valid AArch64 instructions are not reported as invalid
and their addresses are preserved in profgen's code and branch maps.

Add a regression test covering an AArch64 binary containing `ldaddal`
and `ldapr` without object-level feature metadata.

---------

Co-authored-by: Kunal Pathak <kupathak at fb.com>
DeltaFile
+46-0llvm/test/tools/llvm-profgen/aarch64-disassemble-all-features.test
+10-0llvm/tools/llvm-profgen/ProfiledBinary.cpp
+56-02 files

LLVM/project 04baf7ellvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/RISCV/rvv vector-deinterleave-fixed.ll vector-deinterleave.ll

[SDAG][LegalizeType] Implement result vector widening for VECTOR_DEINTERLEAVE (#203105)

I accidentally found that we haven't implemented result vector widening
for `ISD::VECTOR_DEINTERLEAVE`. This patch implements such type
legalization.

---------

Co-authored-by: Simon Pilgrim <git at redking.me.uk>
Co-authored-by: Craig Topper <craig.topper at sifive.com>
DeltaFile
+44-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+26-0llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
+19-0llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+90-04 files

LLVM/project 39f5357flang/lib/Semantics resolve-names.cpp, flang/test/Lower/CUDA cuda-gpu-managed.cuf

[flang][cuda] Apply implicit managed attribute to pointer variables under -gpu=mem:managed (#204634)

When -gpu=mem:managed is active with CUDA Fortran enabled, only
allocatable variables were implicitly given the managed CUDA data
attribute. Pointer variables were left without it, causing their
allocations to use host memory instead of cudaMallocManaged.

This patch extends the implicit managed attribute in
FinishSpecificationPart to also cover pointer symbols. A
LanguageFeature::CUDA guard is added so the attribute is only applied
when CUDA Fortran semantics are active. The implicit pinned attribute
(-gpu=mem:pinned) remains allocatable-only.
DeltaFile
+8-6flang/lib/Semantics/resolve-names.cpp
+6-7flang/test/Lower/CUDA/cuda-gpu-managed.cuf
+14-132 files

LLVM/project 49a0e10llvm/lib/IR Verifier.cpp VerifierAMDGPU.cpp, llvm/test/Verifier callbr-intrinsic.ll

[RFC][NFCI][IR] Extract AMDGPU-specific verification logic into `VerifierAMDGPU.cpp` (#204284)

`Verifier.cpp` is large and already mixes generic IR verification with
target-specific checks. We also have a growing amount of AMDGPU verifier
logic downstream, which would all end up in the same file if we don't
address this, and that is not ideal.

This patch extracts AMDGPU-specific verification logic into a separate
`VerifierAMDGPU.cpp` file, with shared infrastructure
(`VerifierSupport`) moved into `VerifierInternal.h`.

This is purely a code organization change, not a target-dependent IR
verifier. All checks remain compiled and linked into `LLVMCore`
regardless of the target triple. The extracted functions are called
unconditionally at well-defined extension points in `Verifier.cpp`, and
each function internally gates on target-specific conditions (for
example, triple checks or intrinsic IDs) as needed. The file is strictly
limited to AMDGPU-specific IR constructs (amdgcn intrinsics, AMDGPU
module flags, etc.), and does not contain generic IR rules that vary by

    [11 lines not shown]
DeltaFile
+23-530llvm/lib/IR/Verifier.cpp
+406-0llvm/lib/IR/VerifierAMDGPU.cpp
+233-0llvm/lib/IR/VerifierInternal.h
+6-6llvm/test/Verifier/callbr-intrinsic.ll
+1-0llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
+1-0llvm/lib/IR/CMakeLists.txt
+670-5366 files

LLVM/project db9f310llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

[reviews] Simplify repeated pattern.
DeltaFile
+20-16llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+20-161 files

LLVM/project 46995fbmlir/include/mlir/Conversion Passes.td, mlir/include/mlir/Conversion/MathToXeVM MathToXeVM.h

[mlir][Math][XeVM] Add Math to OCL conversion patterns (#198370)

This PR adds conversion patterns to convert supported math ops to SPIR-V
OpenCL builtin calls. These lowerings correspond to `OpExtInst` calls
into the OpenCL SPIR-V extended instruction set via mangled
`__spirv_ocl_` entry points for f32/f64 variants.
DeltaFile
+533-0mlir/test/Conversion/MathToXeVM/math-to-ocl.mlir
+111-19mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
+11-7mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
+8-4mlir/include/mlir/Conversion/Passes.td
+8-1mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
+2-0mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
+673-316 files

LLVM/project 8140495llvm/lib/Target/BPF BPFFrameLowering.cpp BPFFrameLowering.h, llvm/test/DebugInfo/BPF dbg-location-fbreg.ll

[BPF] override getFrameIndexReference for frame object offsets (#204722)

### Summary

The BPF backend currently does not override `getFrameIndexReference()`.
Since BPF uses a fixed frame pointer (R10), frame object offsets are
already expressed relative to the frame pointer. The generic
`TargetFrameLowering::getFrameIndexReference()` implementation adjusts
offsets using the stack size, which is not appropriate for BPF.

This PR overrides `getFrameIndexReference()` to return the correct frame
object offsets for the BPF frame model, resulting in accurate debug
locations for stack variables. For example, the stack variable `local`
in the reproducer below previously received:

```
DW_AT_location (DW_OP_fbreg +0)
```


    [67 lines not shown]
DeltaFile
+127-0llvm/test/DebugInfo/BPF/dbg-location-fbreg.ll
+11-0llvm/lib/Target/BPF/BPFFrameLowering.cpp
+3-0llvm/lib/Target/BPF/BPFFrameLowering.h
+141-03 files

LLVM/project 47af1f9llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

[reviews] Simplify repeated pattern.
DeltaFile
+19-16llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+19-161 files

LLVM/project 1d8a54fclang/include/clang/CIR LoweringHelpers.h, clang/lib/CIR/Lowering LoweringHelpers.cpp

[CIR] Lower const arrays as a single llvm.mlir.constant (#203590)

When compiling the blender benchmark for SPEC CPU2017, we hit a case
where a very large array (more than 400k elements) is initialized with
constant values. However, because it contains trailing zeros, CIR
generates a constant record initializer (an array of elements, plus a
zero-initialized trailing array). We were lowering this to the LLVM
dialect using a global initializer function with a huge number of calls
to insertelement. The subsequent lowering to LLVM IR constant folded
back to a constant initializer, but it took about 40 minutes to compile.

The recent fix to avoid calling insertelement for the array
initialization didn't fix this case because it handled only arrays, not
records.

This change updates the lowering to the LLVM dialect to lower constant
array attributes to a single llvm.mlir.const value rather than
attempting to build a chain of insertvalue ops whenever possible.
DeltaFile
+63-0clang/lib/CIR/Lowering/LoweringHelpers.cpp
+27-5clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+13-0clang/test/CIR/Lowering/const-array-bulk-lowering-fallbacks.cir
+12-0clang/test/CIR/Lowering/const-array-of-pointers.cir
+5-0clang/include/clang/CIR/LoweringHelpers.h
+120-55 files

LLVM/project 2bb8a56bolt/lib/Core BinaryEmitter.cpp, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[MC] emitCodeAlignment: take MCSubtargetInfo by reference. NFC (#205140)

The fragment member cannot be null, and the sibling streamer hooks
(emitInstruction, initSections, emitPrefAlign) already take it by
reference.
DeltaFile
+5-5llvm/lib/Target/X86/X86MCInstLower.cpp
+5-5bolt/lib/Core/BinaryEmitter.cpp
+4-4llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+3-3llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+3-3llvm/lib/MC/MCWinCOFFStreamer.cpp
+2-2llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
+22-2224 files not shown
+50-5030 files

LLVM/project ef22d07flang/lib/Semantics check-omp-structure.cpp

[flang][OpenMP] Use early exit to unindent some code, NFC (#205150)
DeltaFile
+47-45flang/lib/Semantics/check-omp-structure.cpp
+47-451 files

LLVM/project cb82430llvm/test/CodeGen/SPIRV/debug-info debug-function-declaration-namespace-scope.ll debug-function-declaration-absolute-path.ll

[reviews] Add tests for untested cases.
DeltaFile
+44-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-declaration-namespace-scope.ll
+41-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-declaration-absolute-path.ll
+85-02 files

LLVM/project 93b1f81libcxx/include/__random lognormal_distribution.h binomial_distribution.h, libcxx/test/libcxx/numerics/rand nodiscard.verify.cpp

[libc++][random] Applied `[[nodiscard]]` to `<random>` (#204970)

Towards: #172124

-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
- https://wg21.link/rand

Co-authored-by: Hristo Hristov <zingam at outlook.com>
DeltaFile
+607-0libcxx/test/libcxx/numerics/rand/nodiscard.verify.cpp
+9-9libcxx/include/__random/lognormal_distribution.h
+9-9libcxx/include/__random/binomial_distribution.h
+9-9libcxx/include/__random/cauchy_distribution.h
+9-9libcxx/include/__random/negative_binomial_distribution.h
+9-9libcxx/include/__random/weibull_distribution.h
+652-4544 files not shown
+847-24050 files

LLVM/project 582a202llvm/lib/Target/RISCV RISCVQCRelaxMarking.cpp RISCVInstrPredicates.td, llvm/test/CodeGen/RISCV qc-access-marking.ll

[RISCV] Add a Pass for adding %qc.access specifiers (#201938)

Qualcomm's ABI has Access Relocation Markers, which are used to enable
more linker relaxations. This change implements a pass which will
annotate loads and stores (accesses) which are the single user of a
`qc.e.li`-materialized address with these markers so they can be relaxed
in the linker.

This is a follow-up to #188671.
DeltaFile
+637-0llvm/test/CodeGen/RISCV/qc-access-marking.ll
+220-0llvm/lib/Target/RISCV/RISCVQCRelaxMarking.cpp
+25-0llvm/lib/Target/RISCV/RISCVInstrPredicates.td
+6-0llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+3-1llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+3-0llvm/lib/Target/RISCV/RISCV.h
+894-14 files not shown
+901-210 files

LLVM/project dbb907dflang/lib/Semantics check-omp-structure.cpp

[flang][OpenMP] Use early exit to unindent some code, NFC
DeltaFile
+47-45flang/lib/Semantics/check-omp-structure.cpp
+47-451 files

LLVM/project 1f20833llvm/lib/Analysis ConstantFolding.cpp ValueTracking.cpp, llvm/test/Transforms/InstSimplify/ConstProp active-lane-mask.ll

[ValueTracking] Mark frexp, ALM propagates poison (#205139)
DeltaFile
+1-3llvm/test/Transforms/InstSimplify/ConstProp/active-lane-mask.ll
+0-3llvm/lib/Analysis/ConstantFolding.cpp
+2-0llvm/lib/Analysis/ValueTracking.cpp
+3-63 files

LLVM/project 86f2e71clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaChecking.cpp

[Clang][Sema] Add -Wstringop-overread warning for source buffer overreads (#183004)

This PR adds a new `-Wstringop-overread` warning that diagnoses calls to
memory functions where the specified size exceeds the size of the source
buffer, increasing parity with GCC's `-Wstringop-overread`.

The warning is emitted when the read size is a compile-time constant
that is greater than the size of the source buffer (when known
statically).

This check applies to the following functions:
- `memcpy`, `memmove`, `mempcpy` (and `__builtin_` / `__builtin___*_chk`
variants)
- `memchr`
- `memcmp`, `bcmp`

Some of the existing code for `-Wfortify-source` was refactored into a
helper class to make its lambdas accessible to other functions.


    [6 lines not shown]
DeltaFile
+163-82clang/lib/Sema/SemaChecking.cpp
+175-0clang/test/Sema/warn-stringop-overread.c
+10-10clang/test/AST/ByteCode/builtin-functions.cpp
+5-3clang/test/Sema/warn-fortify-source.c
+4-0clang/test/Analysis/bstring.c
+4-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+361-956 files not shown
+370-9912 files

LLVM/project 20cf19flibcxx/include/__math abs.h, libcxx/test/std/numerics/c.math abs.pass.cpp

[libc++] std::abs support for _BitInt(N) and __int128 (#196532)

`std::abs` does not accept `__int128` or signed `_BitInt(N)`: the call
is ambiguous and fails to compile (#204212).

This adds an explicit `abs(__int128_t)` overload and an
`abs(_BitInt(N))` overload that deduces the width, so every signed
`_BitInt` gets a same-type result. `_BitInt` does not integer-promote,
so without this overload a narrow signed `_BitInt` would be an ambiguous
call against `abs(int/long/long long)` instead of promoting the way
`signed char` and `short` do. Standard narrow types are unchanged: they
still go through `abs(int)`.

Part of the [_BitInt(N) libc++
effort](https://discourse.llvm.org/t/bitint-n-support-in-libc-investigations-possible-improvements-looking-for-guidance/90063).

Fixes #204212

Assisted-by: Claude (Anthropic)

    [3 lines not shown]
DeltaFile
+99-0libcxx/test/std/numerics/c.math/abs.pass.cpp
+13-0libcxx/include/__math/abs.h
+112-02 files

LLVM/project a88b88blibcxx/include/__utility constant_wrapper.h, libcxx/test/std/utilities/const.wrap.class cw_fixed.array.ctor.pass.cpp cw_fixed.ctor.pass.cpp

[libc++] Implement P4206R0 Revert string support in std::constant_wrapper (#203338)

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

---------

Signed-off-by: yronglin <yronglin777 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+37-51libcxx/include/__utility/constant_wrapper.h
+0-86libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
+0-70libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
+0-32libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
+15-8libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
+23-0libcxx/test/std/utilities/const.wrap.class/template.verify.cpp
+75-24712 files not shown
+97-29618 files

LLVM/project 08d766blibcxx/utils/ci/lnt run-benchmarks run-benchbot

[libc++][lnt] Allow retaining build artifacts in run-benchbot (#205146)

Also, as a drive-by, introduce `--results-dir` to specify where to put
the JSON results instead of using `--build-dir` for that.

Assisted by Claude
DeltaFile
+42-13libcxx/utils/ci/lnt/run-benchmarks
+37-14libcxx/utils/ci/lnt/run-benchbot
+6-2libcxx/utils/ci/lnt/README.md
+85-293 files

LLVM/project 1a63fcautils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel

[bazel] Disable buildkite for PluginProcessWindowsCommon (#205141)
DeltaFile
+1-0utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+1-01 files

LLVM/project 6e56216llvm/lib/ObjectYAML MachOEmitter.cpp, llvm/test/ObjectYAML/MachO endianness.yaml

[yaml2obj][MachO] Fix byte order of the indirect symbol table (#205044)

This is a follow-up of PR #203680 that added the test case
`linkedit-alignment.test`, which currently fails on big-endian buildbots
(see: https://lab.llvm.org/buildbot/#/builders/98/builds/3084 and
https://lab.llvm.org/buildbot/#/builders/114/builds/906).

The failure seems to be on `yaml2obj`, where `writeDynamicSymbolTable`
emits an indirect symbol table in host byte order rather than the
specified object's byte order (i.e. the `IsLittleEndian` field value).

This PR adds the missing swap and a regression test that round-trips all
endian-sensitive fields with both endianness values.
DeltaFile
+207-0llvm/test/ObjectYAML/MachO/endianness.yaml
+6-3llvm/lib/ObjectYAML/MachOEmitter.cpp
+213-32 files

LLVM/project b593c80llvm/test/CodeGen/SPIRV/debug-info debug-function-declaration-two-compile-units.ll

[reviews] Add new test
DeltaFile
+47-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-declaration-two-compile-units.ll
+47-01 files

LLVM/project 91e344butils/bazel/llvm-project-overlay/lldb BUILD.bazel, utils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel

[lldb][bazel] Add the Windows process plugin to the bazel build (#203146)

Add a cc_library for the native Windows process plugin
(ProcessWindowsCommon),
  gated to @platforms//os:windows, and register it via the dedicated
@LLDB_PROCESS_WINDOWS_PLUGIN@ slot in the generated Plugins.def. This
mirrors the
CMake build, which special-cases ProcessWindowsCommon into that slot so
it is
initialized after all other process plugins but before ProcessGDBRemote.

With the help of claude.

Tested internally at Meta by converting Bazel -> BUCK and confirming
matches working BUCK contents for windows lldb build.
DeltaFile
+33-1utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+3-0utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+36-12 files

LLVM/project 9f576dallvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

[reviews] Remove attributes.
DeltaFile
+4-8llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+4-81 files