LLVM/project b6a9206flang/test/Lower select-type.f90

[flang][NFC] Converted select-type.f90 test to HLFIR (#195777)

Lower/select-type.f90 took special care to convert from legacy lowering
to HLFIR lowering.

Assisted-by: AI
DeltaFile
+665-333flang/test/Lower/select-type.f90
+665-3331 files

LLVM/project c97244dflang-rt/lib/runtime extensions.cpp

[flang-rt] Avoid libstdc++ guard symbols in RTNAME(Timef) (#195984)

The function-local `static Lock timef_lock;` introduced by PR #185377
required thread-safe-static initialization, which causes the compiler to
emit calls to `__cxa_guard_acquire`/`__cxa_guard_release` from
libsupc++/libc++abi -- a C++ runtime library dependency that flang-rt
explicitly avoids (see comment in
flang-rt/include/flang-rt/runtime/lock.h).

Move `timef_lock` to namespace scope, matching the existing
`rand_seed_lock` pattern in the same file. The other function-local
statics (`start`, `ticks_per_sec`, `isInit`) have constant initializers
and are unaffected.

Assisted-by: AI
DeltaFile
+8-1flang-rt/lib/runtime/extensions.cpp
+8-11 files

LLVM/project a30e9a4cross-project-tests/debuginfo-tests/dexter/dex/debugger DAP.py

[Dexter] Add timestamps to DAP logging (#193705)

DAP logs are currently optionally output by Dexter to assist in
debugging or analyzing Dexter sessions. The output currently includes
the contents of every DAP message sent to/from the debug adapter, but
for some long-running programs it can also be useful to know when
messages have been sent and received; to assist, this patch adds
timestamps to DAP messages in the log.
DeltaFile
+10-0cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
+10-01 files

LLVM/project 2b8ca25llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

[SPIRV] Fix failure on the `llvm.trap` test (#195996)

The `llvm.trap` test was failing with the expensive checks enabled,
because the backend incorrectly created the `OpConstant` and
`OpConstantNull` instructions for the operand of `OpAbortKHR` in the
same basic block. When there are multiple `llvm.trap` intrinsics, they
reuse the same operand, which doesn't dominate all the users. This
commit moves the constant into the function entry block to ensure it
dominates all the users.

Assisted-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+37-1llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+37-11 files

LLVM/project a751e30llvm/include/llvm/Analysis VecFuncs.def, llvm/include/llvm/IR RuntimeLibcalls.td

[AMDLIBM] - Add new vector call from amdlibm library (#194793)

Add vector call from AMDLIBM

erfinv
Vector - vrd2, vrd4, vrd8

erfcinv
Vector - vrd2, vrd4, vrd8

cdfnorminv
Vector - vrd2, vrd4, vrd8 

As per the latest external supported calls

[amdlibm_vec.h](https://github.com/amd/aocl-libm-ose/blob/master/include/external/amdlibm_vec.h)
DeltaFile
+78-0llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll
+49-1llvm/test/Transforms/Util/add-TLI-mappings.ll
+12-0llvm/include/llvm/Analysis/VecFuncs.def
+12-0llvm/include/llvm/IR/RuntimeLibcalls.td
+151-14 files

LLVM/project 346fdd5clang/utils/TableGen NeonEmitter.cpp

[Clang][NEON] Use const std::string & in NeonEmitter. NFC. (#193925)

Fixes #94375
DeltaFile
+3-2clang/utils/TableGen/NeonEmitter.cpp
+3-21 files

LLVM/project 00a14f8llvm/test/CodeGen/X86 vector-reduce-mul.ll

[X86] vector-reduce-mul.ll - add 32-bit test coverage to the integer multiply tests (#196030)
DeltaFile
+2,969-1,160llvm/test/CodeGen/X86/vector-reduce-mul.ll
+2,969-1,1601 files

LLVM/project 0ed0b21llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/unittests/Target/AArch64 InstSizes.cpp

[AArch64] Report accurate sizes for MOVaddr and MOVimm pseudos
DeltaFile
+89-0llvm/unittests/Target/AArch64/InstSizes.cpp
+28-16llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+117-162 files

LLVM/project a333270llvm/lib/Target/AArch64 AArch64ExpandPseudo.cpp AArch64ExpandImm.cpp

[NFC][AArch64] Extract MOVaddr* expansion model into common header

This makes the expansion logic reusable by getInstSizeInBytes in a
follow-up patch.
DeltaFile
+742-0llvm/lib/Target/AArch64/AArch64ExpandPseudo.cpp
+0-722llvm/lib/Target/AArch64/AArch64ExpandImm.cpp
+75-56llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+42-0llvm/lib/Target/AArch64/AArch64ExpandPseudo.h
+0-35llvm/lib/Target/AArch64/AArch64ExpandImm.h
+10-9llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+869-8225 files not shown
+886-83911 files

LLVM/project 9da5f27clang-tools-extra/clang-tidy/modernize UseRangesCheck.cpp, clang-tools-extra/clang-tidy/utils UseRangesCheck.cpp

[clang-tidy] `use-ranges`: avoid unsafe result fix-its

Preserve callable results with .fun, allow structured-binding-safe rewrites, and keep diagnostics while suppressing unsafe fix-its when ranges result objects do not match the original result shape.

Assisted by Codex.
DeltaFile
+38-2clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
+37-0clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
+22-5clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
+26-0clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
+7-0clang-tools-extra/docs/ReleaseNotes.rst
+2-0clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
+132-71 files not shown
+134-77 files

LLVM/project 7cea026libc/src/__support/CPP scope.h, libc/test/src/__support/CPP scope_test.cpp CMakeLists.txt

[libc] Add a simple scope_exit wrapper and use it in socket tests (#192615)

This is slightly different from the other CPP reimplementations in that
the real scope_exit is only an experimental C++ class. If that's an
issue, I'm happy to put the class somewhere else.

It could probably be used in more places, but right now I'm adding it to
socket tests, as that's what I'm familiar with. It (mostly -- it doesn't
help with crashes) solves the issue where a failing test does not clean
up the unix domain socket, which then fails the test on the subsequent
run.
DeltaFile
+38-30libc/test/src/sys/socket/linux/connect_accept_test.cpp
+54-0libc/src/__support/CPP/scope.h
+49-0libc/test/src/__support/CPP/scope_test.cpp
+10-0libc/test/src/__support/CPP/CMakeLists.txt
+6-3libc/test/src/sys/socket/linux/listen_test.cpp
+5-4libc/test/src/sys/socket/linux/send_recv_test.cpp
+162-376 files not shown
+196-4912 files

LLVM/project 0059df2lldb/include/lldb/Host/common NativeProcessProtocol.h, lldb/source/Host/common NativeProcessProtocol.cpp

[lldb] Do not refcount breakpoints in lldb-server (#195858)

We did not say so explictly, but I'd argue that via #195815, we are
supporting stubs which do not refcount breakpoints. In these stubs the
set/clear breakpoint packets are idempotent:
- setting a breakpoint for the second time is a no-op (returns OK)
- clearing a breakpoint clears it, regardless of how many times it has
been set
- clearing a non-existent breakpoint (either because it was already
cleared, or because it was never set) returns an error

This makes lldb-server one of those stubs, which makes the code slightly
simpler, but more importantly, ensures we do not regress this behavior.
DeltaFile
+4-10lldb/source/Host/common/NativeProcessProtocol.cpp
+11-2lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
+0-1lldb/include/lldb/Host/common/NativeProcessProtocol.h
+15-133 files

LLVM/project 6bb0625mlir/include/mlir/Dialect/Vector/TransformOps VectorTransformOps.td, mlir/include/mlir/Dialect/Vector/Transforms LoweringPatterns.h

[MLIR][vector] vector.deinterleave to vector.shuffle decomposition (#177897)

This PR adds a rewrite pattern for vector.deinterleave ops that rewrites
them using vector.shuffle ops. This is similar to the existing pattern
for vector.interleave and allows for supporting these ops for lowering
to targets without native deinterleave support. A transform dialect op
is also added to apply this pattern.

---------

Co-authored-by: Andrzej Warzyński <andrzej.warzynski at gmail.com>
DeltaFile
+60-0mlir/test/Dialect/Vector/vector-interleave-deinterleave-to-shuffle.mlir
+48-3mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp
+0-20mlir/test/Dialect/Vector/vector-interleave-to-shuffle.mlir
+5-5mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
+3-2mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
+3-0mlir/include/mlir/Dialect/Vector/Transforms/LoweringPatterns.h
+119-306 files

LLVM/project 6c25b20llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

[OMPIRBuilder] Use correct API to get filename. (#195866)

Fix incorrect OpenMP source location in ident strings (e.g. showing
"FIRModule" instead of the real source file for Flang).

This addresses issue #195333 (filename part): we were deriving the file
path from `DIFile::getSource()`, which returns optional *embedded*
source contents, not the path/name of the file on disk. It usually
returns `std::nullopt`, so the code fell back to the LLVM module name
(`M.getName()`), which is often "FIRModule" for FIR lowering.

This issue is a regression of D85938 (9240e48a588c) which switched from
`DILocation::getFilename()` to `DIFile::getSource()`.

Restore use of the location’s filename (`DILocation::getFilename()`) so
the ident string gets the actual source file name when available.
DeltaFile
+2-4llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+2-3llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+4-72 files

LLVM/project 62094f1clang-tools-extra/clang-tidy/modernize UseRangesCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] `use-ranges`: preserve output results

Preserve used output iterator results for output algorithm replacements by appending .out where the ranges algorithm returns an algorithm result object.

Fix #110223

Assisted by Codex.
DeltaFile
+104-0clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
+59-0clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
+26-28clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
+3-0clang-tools-extra/docs/ReleaseNotes.rst
+2-0clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
+194-285 files

LLVM/project daa8e08llvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine compare-unescaped.ll

[InstCombine] Fix vector icmp handling in alloc removal (#196031)

A vector icmp can occur after #195486.
DeltaFile
+9-0llvm/test/Transforms/InstCombine/compare-unescaped.ll
+2-3llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+11-32 files

LLVM/project 4e67380clang-tools-extra/clang-tidy/modernize UseRangesCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] `use-ranges`: preserve remove iterator results

Preserve used iterator results for remove, partition, stable_partition, and rotate-style replacements by appending .begin() where the ranges algorithm returns a subrange.

Fix #124794

Assisted by Codex.
DeltaFile
+25-0clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
+16-0clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
+6-6clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+51-64 files

LLVM/project ef6da5eclang-tools-extra/clang-tidy/modernize UseRangesCheck.cpp, clang-tools-extra/clang-tidy/utils UseRangesCheck.cpp UseRangesCheck.h

[clang-tidy] `use-ranges`: preserve used unique results

Preserve iterator uses when replacing std::unique with std::ranges::unique by appending .begin() in used-result contexts.

Fix #127658

Assisted by Codex.
DeltaFile
+41-0clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
+30-9clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
+25-0clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
+14-0clang-tools-extra/clang-tidy/utils/UseRangesCheck.h
+6-0clang-tools-extra/docs/ReleaseNotes.rst
+3-0clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
+119-91 files not shown
+121-97 files

LLVM/project 79f35a2mlir/include/mlir/Analysis/Presburger Matrix.h, mlir/lib/Analysis/Presburger Barvinok.cpp Matrix.cpp

[MLIR][Presburger] Make getSubMatrix exclusive on the right end (#190911)

Currently `getSubMatrix(fromRow, toRow, fromCol, toCol)` forms a
submatrix with both ends inclusive. In this way, it's impossible to form
an empty submatrix, as the assertions in the function prevents cases
where `toRow < fromRow`. However, the functionality is necessary for
Barvinok procedures (e.g. we might want to inspect the submatrix for
parameters, which will be empty if there's none).

This PR changes it to be inclusive on the left end and exclusive on the
right end, making it the same as canonical C++ ranges.
DeltaFile
+7-8mlir/lib/Analysis/Presburger/Barvinok.cpp
+5-5mlir/lib/Analysis/Presburger/Matrix.cpp
+2-1mlir/include/mlir/Analysis/Presburger/Matrix.h
+14-143 files

LLVM/project 1c70435clang/lib/CodeGen/TargetBuiltins ARM.cpp

[clang][AArch64][nfc] Remove redundant truncation for FP16 reduction builtins (#195825)

The following non-overloaded NEON builtins already return the expected
result
type, so CodeGen does not need to truncate their results:

  * BI__builtin_neon_vmaxv_f16
  * BI__builtin_neon_vmaxvq_f16
  * BI__builtin_neon_vminv_f16
  * BI__builtin_neon_vminvq_f16
  * BI__builtin_neon_vmaxnmv_f16
  * BI__builtin_neon_vmaxnmvq_f16
  * BI__builtin_neon_vminnmv_f16
  * BI__builtin_neon_vminnmvq_f16

Remove the redundant truncation from AArch64 CodeGen.
DeltaFile
+8-15clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+8-151 files

LLVM/project 8d61b16llvm/lib/TargetParser TargetDataLayout.cpp, llvm/unittests/TargetParser TripleTest.cpp

[RISC-V] Add support for cheriot ABI in DataLayout (#190806)

CHERIoT uses the same DataLayout setup as RISC-V Y base, but does not share instruction encodings with it.
DeltaFile
+8-6llvm/lib/TargetParser/TargetDataLayout.cpp
+13-0llvm/unittests/TargetParser/TripleTest.cpp
+21-62 files

LLVM/project 1e52b49llvm/test/CodeGen/RISCV reserved-reg-errors.ll, llvm/test/CodeGen/RISCV/rvv fixed-vectors-mask-logic.ll

[RISCV] Fix duplicate RUN lines in tests (#182272)
DeltaFile
+1-1llvm/test/CodeGen/RISCV/reserved-reg-errors.ll
+0-2llvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-logic.ll
+1-32 files

LLVM/project b9bcdabmlir/lib/Dialect/SCF/Transforms ParallelLoopFusion.cpp, mlir/test/Dialect/SCF parallel-loop-fusion.mlir

[MLIR] Parallel loop fusion extended to interchanged loops. (#191245)

Patch extends fusion of two parallel loops to the case where the second
parallel loop comprises of two interchanged loops of same iteration
space.
DeltaFile
+48-2mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
+26-0mlir/test/Dialect/SCF/parallel-loop-fusion.mlir
+74-22 files

LLVM/project a257e2allvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Introduce loop-uniform SCEV classification. (#194304)

This patch extends `ScalarEvolution::LoopDisposition` with a new
`LoopUniform` state to describe SCEVs that are invariant across all
iterations of a given loop, but may still depend on inner-loop induction
variables.

Unlike `LoopInvariant`, which requires the value to be fully invariant
with respect to the loop, LoopUniform captures expressions that do not
depend on the loop’s own induction variables, yet may vary in nested
loops. This distinction is useful for analyses and optimizations that
reason about per-iteration stability at a specific loop level.

Example:
```
for (i)
  for (j)
    dep(j);       // uniform w.r.t. i
    dep(i, j);    // not uniform w.r.t. i

    [4 lines not shown]
DeltaFile
+12-12llvm/test/Analysis/ScalarEvolution/max-expr-cache.ll
+24-0llvm/include/llvm/Analysis/ScalarEvolution.h
+20-2llvm/lib/Analysis/ScalarEvolution.cpp
+9-9llvm/test/Analysis/ScalarEvolution/incorrect-exit-count.ll
+7-7llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll
+6-6llvm/test/Analysis/ScalarEvolution/exit-count-select-safe.ll
+78-3610 files not shown
+103-6116 files

LLVM/project 7e1f6b6llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.rsq.f16.ll llvm.amdgcn.rsq.ll

AMDGPU/GlobalISel: Implement RegBankLegalizeRules for amdgcn_rsq and amdgcn_rsq_clamp. (#187672)
DeltaFile
+167-91llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.f16.ll
+149-2llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll
+80-2llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll
+8-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+404-954 files

LLVM/project 1fb93e8llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize vplan-widen-select-instruction.ll

[VPlan] Deep-traverse in narrowToSingleScalars (#194680)

vputils::isSingleScalar will anyway return false for Replicate in
replicate regions.
DeltaFile
+3-5llvm/test/Transforms/LoopVectorize/vplan-widen-select-instruction.ll
+1-5llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-102 files

LLVM/project 8079feaclang/lib/CIR/CodeGen CIRGenCUDANV.cpp, clang/test/CIR/CodeGenCUDA device-stub.cu kernel-call.cu

Add HIP LLVM lowering and proper HIP host kernel handle emission.
DeltaFile
+39-3clang/test/CIR/CodeGenCUDA/device-stub.cu
+2-2clang/test/CIR/CodeGenCUDA/kernel-call.cu
+2-2clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
+1-1clang/test/CIR/CodeGenHIP/simple.cpp
+44-84 files

LLVM/project f86c2f5llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp, llvm/test/CodeGen/AMDGPU vector-reduce-fadd.ll vector-reduce-fmul.ll

[AMDGPU][GlobalISel] Fold G_TRUNC(G_LSHR(x, 16)) into hi16 subregister copy in True16 mode
DeltaFile
+52-82llvm/test/CodeGen/AMDGPU/vector-reduce-fadd.ll
+52-82llvm/test/CodeGen/AMDGPU/vector-reduce-fmul.ll
+55-47llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+12-36llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
+21-19llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
+21-19llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
+213-2853 files not shown
+220-2999 files

LLVM/project 915a1e5llvm/test/CodeGen/SystemZ memcpy-03.ll memmove-01.ll

[SystemZ] Remove superfluous args in tests. (#196022)

The third %val argument only makes sense for memset, so remove from
memcpy/memmove tests.
DeltaFile
+69-69llvm/test/CodeGen/SystemZ/memcpy-03.ll
+69-69llvm/test/CodeGen/SystemZ/memmove-01.ll
+138-1382 files

LLVM/project 480f144llvm/lib/Transforms/Vectorize VPlanRecipes.cpp

[VPlan] Use map_to_vector to create ParamTys vector (NFC). (#195931)

Use map_to_vector to slightly simplify code.
DeltaFile
+5-6llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+5-61 files