LLVM/project 301aae6 — lldb/unittests CMakeLists.txt

[LLDB] Exclude exposed exe symbols from tests (#228645)

Same as what we have for normal lldb installation. A executable may
creates a copy of a symbol if it links to the archive. Exclude archive
symbols out from the exe itself.
DeltaFile
+4-0lldb/unittests/CMakeLists.txt
+4-01 files

LLVM/project 356b4eb — lldb/source/Host/freebsd Host.cpp

[LLDB][FreeBSD] Fix file not exists detection (#235358)

A process can outlive the exact running binary inside. As a result, a
file fails to query should set unknow by default.
DeltaFile
+7-10lldb/source/Host/freebsd/Host.cpp
+7-101 files

LLVM/project 95b1868 — llvm/lib/CodeGen/SelectionDAG SDNodeInfo.cpp, llvm/lib/Target/M68k M68kSelectionDAGInfo.cpp

Reapply "[SelectionDAG] Implement SDTCisSameAs in verifyNode." (#235357)

This relands a98c5c2b79b6afe17e831f4962f7f1fa27e9ad86 with a waiver for
M68k
DeltaFile
+10-1llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp
+3-0llvm/lib/Target/M68k/M68kSelectionDAGInfo.cpp
+13-12 files

LLVM/project 8c67eee — llvm/lib/Target/M68k M68kISelDAGToDAG.cpp M68kInstrArithmetic.td

[M68k] Remove dead ADDC/ADDE/SUBC/SUBE isel patterns. NFC

These nodes are custom lowered and can't make it to isel.

Assisted-by: Claude
DeltaFile
+94-120llvm/lib/Target/M68k/M68kInstrArithmetic.td
+0-1llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp
+94-1212 files

LLVM/project b6977b2 — llvm/lib/Target/AVR AVRExpandPseudoInsts.cpp, llvm/test/CodeGen/AVR std-ldd-tiny.ll

[AVR] Fix byte spills and stack args on AVRTiny

AVRTiny cores have no load/store with displacement, yet 8-bit spills,
reloads and stack arguments in functions without a reserved call frame
were still emitted as STDPtrQRr/LDDRdPtrQ. llc then aborted in the
AsmPrinter, so any function that spilled a byte failed to compile, also
with the default register allocator and at -O0, and builds without
assertions silently emitted std/ldd instead.

Expand both instructions on AVRTiny the same way as their 16-bit
counterparts: a plain st/ld when the displacement is zero, as it always
is for spill slots, and pointer adjustments around it otherwise.
DeltaFile
+222-0llvm/test/CodeGen/AVR/std-ldd-tiny.ll
+74-0llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp
+44-0llvm/test/CodeGen/AVR/pseudo/STDPtrQRr.mir
+41-0llvm/test/CodeGen/AVR/pseudo/LDDRdPtrQ.mir
+381-04 files

LLVM/project 487ef62 — llvm/lib/Target/AVR AVRExpandPseudoInsts.cpp, llvm/test/CodeGen/AVR std-ldd-tiny.ll

[AVR] Address review comments on AVRTiny spills

Document that STDPtrQRr and LDDRdPtrQ are only treated as pseudo
instructions on AVRTiny, and check atmega328 instead of -O0 in
std-ldd-tiny.ll so the test contrasts the two kinds of cores.
DeltaFile
+93-198llvm/test/CodeGen/AVR/std-ldd-tiny.ll
+4-0llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp
+97-1982 files

LLVM/project 362612f — llvm/test/CodeGen/AMDGPU flat-saddr-atomics.ll, llvm/test/CodeGen/AMDGPU/GlobalISel extractelement.ll llvm.amdgcn.image.atomic.dim.a16.ll

Merge branch 'main' into users/aokblast/lldb/fix_no_file_exists
DeltaFile
+2,112-452llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.dim.a16.ll
+1,222-1,222llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+738-856llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
+779-753llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+84-1,344llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
+673-574llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+5,608-5,201364 files not shown
+23,383-16,155370 files

LLVM/project 25385ba — clang/lib/CodeGen BackendUtil.cpp, flang/lib/Frontend FrontendActions.cpp

[Passes] Make runCodeGenPipeline take raw_pwrite_stream for DwoOS (#235339)

The std::unique_ptr reference was mostly cargo-culting from clang/flang
that does not necessarily make sense for other frontends (case study
right now is rustc). Change to a raw_pwrite_stream given that makes more
sense internally and gives frontends more flexibility.
DeltaFile
+6-10llvm/lib/Passes/RunCodeGen.cpp
+3-3llvm/include/llvm/Passes/RunCodeGen.h
+2-2flang/lib/Frontend/FrontendActions.cpp
+2-1clang/lib/CodeGen/BackendUtil.cpp
+13-164 files

LLVM/project efedafa — lldb/source/Plugins/ObjectFile/Minidump MinidumpFileBuilder.cpp

[LLDB][Minidump] Fix BSD's unsupport failure

BSD should also support Minidump naturally. For platform_id, we don't
see any difference between different BSD deriviatives. Set it to Unix
generic so that at least test works.
DeltaFile
+5-0lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp
+5-01 files

LLVM/project c4d8a1f — flang/include/flang/Evaluate constant.h fold.h, flang/lib/Evaluate fold-implementation.h

Nits found by Claude
DeltaFile
+14-15flang/include/flang/Evaluate/expression.h
+2-6flang/include/flang/Evaluate/fold.h
+3-4flang/lib/Evaluate/fold-implementation.h
+3-3flang/lib/Semantics/type.cpp
+2-2flang/test/Evaluate/fold-findloc-kind.f90
+3-1flang/include/flang/Evaluate/constant.h
+27-317 files not shown
+31-3813 files

LLVM/project af6a5bb — lldb/source/Host/freebsd Host.cpp

[LLDB][FreeBSD] Fix file not exists detection

A process can outlive the exact running binary inside. As a result, a
file fails to query should set unknow by default.
DeltaFile
+7-10lldb/source/Host/freebsd/Host.cpp
+7-101 files

LLVM/project b1db344 — llvm/include/llvm/CodeGen MachinePipeliner.h WindowScheduler.h, llvm/lib/CodeGen MachinePipeliner.cpp WindowScheduler.cpp

[WindowScheduler] Preserve loop-carried memory dependences (#231364)

The WindowScheduler clones the loop body into TripleMBB and advances the
base registers of memory accesses to later iterations, but the clones
keep the original iteration's memory operands. The per-window scheduler
could therefore treat a store and a load from different copies as
non-aliasing and reorder them, even though they touch the same address
in consecutive iterations, producing wrong code.
Detect loop-carried memory dependences on the original loop and enforce
them with a DAG mutation while list scheduling each window.
Fixes #209946
DeltaFile
+325-0llvm/test/CodeGen/Hexagon/swp-ws-loop-carried-dep.mir
+194-4llvm/lib/CodeGen/WindowScheduler.cpp
+35-34llvm/lib/CodeGen/MachinePipeliner.cpp
+25-3llvm/include/llvm/CodeGen/WindowScheduler.h
+9-4llvm/include/llvm/CodeGen/MachinePipeliner.h
+588-455 files

LLVM/project a48ab42 — flang/test/Semantics kinds02.f90 kinds01.f90

[Flang][test] Use x86 triple (#235354)

`REAL(10)` is only available on x86 targets. x86-registered-target
enabled in #235068 is insufficient, it also needs to be compiled to the
x86 target triple. Apply the same -triple as other tests such as
flang/test/Semantics/real10-x86-01.f90 do.

Note: Some constant foldings are only available if the flang compiler
itself runs under x86, but folding is not what is tested here.

Should fix the
[clang-aarch64-sve-vls-2stage](https://lab.llvm.org/buildbot/#/builders/4)
buildbot
DeltaFile
+1-1flang/test/Semantics/kinds02.f90
+1-1flang/test/Semantics/kinds01.f90
+2-22 files

LLVM/project 78a9c8d — clang/include/clang/CIR/Dialect/IR CIRCUDAAttrs.td, clang/lib/CIR/CodeGen CIRGenCUDANV.cpp

[CIR][CUDA] Add host-side surface registration support (#225146)

Related: #179278.

This patch adds host-side registration support for CUDA built-in surface
references in CIR.

Previously, CIR recognized CUDA surface variables during registration,
but host-side surface handling was not implemented. This change
preserves the surface type information in CIR registration metadata and
emits the corresponding `__cudaRegisterSurface` runtime registration
call.

## Changes

- Internalize CUDA surface and texture host shadow variables to match
original CodeGen behavior
- Extend `CUDAVarRegistrationInfoAttr` with the CUDA surface type
- Extract the surface type from the CUDA surface template arguments

    [11 lines not shown]
DeltaFile
+54-30clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+45-0clang/test/CIR/CodeGenCUDA/surface.cu
+24-10clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
+8-2clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+2-1clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
+133-435 files

LLVM/project 8f8e41f — llvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h VPlanTransforms.h, llvm/test/Transforms/LoopVectorize/VPlan epilogue-vectorization-printing.ll

[VPlan] Simplify epilogue connection (NFC). (#235344)

Follow-up to https://github.com/llvm/llvm-project/pull/229921 to
slightly simplify the code.
DeltaFile
+22-24llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+19-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+9-14llvm/lib/Transforms/Vectorize/VPlan.cpp
+5-5llvm/test/Transforms/LoopVectorize/VPlan/epilogue-vectorization-printing.ll
+6-4llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+5-1llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+66-576 files

LLVM/project 46555a3 — flang/lib/Lower ConvertConstant.cpp

Revert "[Flang] Reject unexpected REAL kinds when lowering literals"

This reverts commit 3bd9070623f6a285835697de12eaed673faedf9b.
DeltaFile
+5-6flang/lib/Lower/ConvertConstant.cpp
+5-61 files

LLVM/project 406dbc2 — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize load-deref-pred-poison-ub-ops-feeding-pointer.ll metadata.ll

[VPlan] Drop poison-gen attributes & metadata on replicated clones. (#234613)

VPReplicateRecipe::execute clones the original instruction, carrying
over all metadata & attributes.

Clear poison-generating attributes & metadata, to make sure we only
apply the attributes & metadata carried by the recipe itself.

PR: https://github.com/llvm/llvm-project/pull/234613
DeltaFile
+10-12llvm/test/Transforms/LoopVectorize/cse-replicate-poison-generating.ll
+4-4llvm/test/Transforms/LoopVectorize/metadata.ll
+1-1llvm/test/Transforms/LoopVectorize/load-deref-pred-poison-ub-ops-feeding-pointer.ll
+1-1llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
+2-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+18-185 files

LLVM/project 3bd9070 — flang/lib/Lower ConvertConstant.cpp

[Flang] Reject unexpected REAL kinds when lowering literals

Kind 8 was the default arm of the real-literal switch, so any other kind
was parsed as an IEEE double. Handle kind 8 explicitly and abort on an
unsupported kind.
DeltaFile
+6-5flang/lib/Lower/ConvertConstant.cpp
+6-51 files

LLVM/project 953a798 — flang/lib/Lower/Support Utils.cpp

Hash the operand kind of a relation

Relational::kind() is the logical result kind, which is always 4, so
relations of different operand kinds hashed the same. Hash the operand
kind instead.

Grok finding another mistake by GPT/Claude
DeltaFile
+1-1flang/lib/Lower/Support/Utils.cpp
+1-11 files

LLVM/project e422530 — clang/lib/Driver Driver.cpp, clang/lib/Driver/ToolChains SYCL.cpp

[Driver][SYCL] Link libclang_rt.builtins.bc for spirv64 at compile time via getDeviceLibs (#218528)

Add support for linking `libclang_rt.builtins.bc` for the `spirv64`
target at compile time by integrating it into the SYCL `getDeviceLibs`
mechanism. This ensures built-in runtime library functions are available
for SYCL device code targeting `SPIR-V` 64-bit.

Re-land of https://github.com/llvm/llvm-project/pull/212550 (Only Clang
Driver changes)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
DeltaFile
+43-26clang/test/Driver/sycl-offload-jit.cpp
+57-0clang/test/Driver/sycl-device-lib-spirv64.cpp
+23-24clang/lib/Driver/Driver.cpp
+40-0clang/lib/Driver/ToolChains/SYCL.cpp
+15-15clang/test/Driver/sycl.cpp
+14-14clang/test/Driver/sycl-windows.cpp
+192-7913 files not shown
+239-9819 files

LLVM/project e312add — libc/src/__support/math setpayloadsigf128.h setpayloadf128.h, libc/test/shared shared_math_test.cpp shared_math_constexpr_test.cpp

[libc] Modify NaN/payload functions for emulated float128 type (#221946)

Updated `nanf128`, `getpayloadf128`, `setpayloadf128`, and
`setpayloadsigf128` for emulated `float128`, including shared headers,
entrypoints, CMake/Bazel dependencies, wrappers, and tests.

closes #221574
DeltaFile
+19-19libc/test/shared/shared_math_constexpr_test.cpp
+20-15libc/test/shared/shared_math_test.cpp
+11-9libc/src/__support/math/nanf128.h
+10-8libc/src/__support/math/setpayloadsigf128.h
+10-8libc/src/__support/math/setpayloadf128.h
+10-8libc/src/__support/math/getpayloadf128.h
+80-6734 files not shown
+329-15440 files

LLVM/project aa4b48d — flang/lib/Evaluate int-power.h

Grok finding GPT's mistake and resolved by human
DeltaFile
+27-17flang/lib/Evaluate/int-power.h
+27-171 files

LLVM/project 1c39076 — flang/lib/Lower OpenACC.cpp, flang/test/Lower/OpenACC acc-declare.f90

[flang][acc] Name deviceptr objects on the exit of a local declare (#235089)

A structured `acc declare deviceptr(a)` inside a procedure lowers to an
`acc.declare_enter` whose data operands include the deviceptr op, but
the matching `acc.declare_exit` carried no operands for it. The runtime
therefore saw the region opened at the enter and never closed, and the
entry registered for `a` survived the end of the procedure. With a dummy
argument this leaks one present table entry per call.

Append the deviceptr entry ops to the `acc.declare_exit` operands in
`genDeclareInFunction`, the same way the present clause is handled. No
copyout or delete is generated for deviceptr. The runtime conversion
then emits the data end call for the exit.

The lowering test checks that the exit names the deviceptr object and
that no delete is produced.
DeltaFile
+9-2flang/lib/Lower/OpenACC.cpp
+6-2flang/test/Lower/OpenACC/acc-declare.f90
+15-42 files

LLVM/project c600a88 — flang/lib/Evaluate int-power.h

[Flang] Restore real-only reciprocal retry in IntPower

The merged integer-power folder retried on every negative overflow and
kept the retry only when that retry did not overflow, including for
complex values. Real values again retry only when the base is nonzero
and its magnitude is greater than one, and that retry is kept. Complex
values do not retry.
DeltaFile
+13-7flang/lib/Evaluate/int-power.h
+13-71 files

LLVM/project f27348a — flang/lib/Evaluate fold-integer.cpp, flang/test/Evaluate fold-findloc-kind.f90

Restore ConvertToType

FINDLOC compared elements with .EQV. and then read the folded result as
LOGICAL(4). The operation keeps the operand kind, so LOGICAL(1/2/8)
produced an empty optional and aborted. Compare the truth values directly.
DeltaFile
+13-0flang/test/Evaluate/fold-findloc-kind.f90
+4-3flang/lib/Evaluate/fold-integer.cpp
+17-32 files

LLVM/project c0815b9 — llvm/lib/Target/ARM MVETPAndVPTOptimisationsPass.cpp, llvm/test/CodeGen/Thumb2/LowOverheadLoops revert-after-call-preheader.mir

[ARM] Replace reg in preheader when reverting WhileLoopStartLR (#229754)

As we revert a wls loop to a dls loop, we remove the t2WhileLoopStartLR
to a t2DoLoopStart at the start of the preheader. In finding the
t2WhileLoopStartLR we might have looked through a copy that is still
using the t2WhileLoopStartLR def. Make sure we replace the use with the
Src to remain valid.

Fixes #229400
DeltaFile
+220-0llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call-preheader.mir
+9-0llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp
+229-02 files

LLVM/project de39e75 — llvm/include/llvm/IR Operator.h

[IR] Remove unused GEPOperator::countNonConstantIndices (NFC) (#235233)

The last callers of GEPOperator::countNonConstantIndices were removed
on April 26, 2024 in commit cbe1760f02882328c91e5764648f97fe644f44c9.

Assisted-by: Antigravity
DeltaFile
+0-6llvm/include/llvm/IR/Operator.h
+0-61 files

LLVM/project ee824d2 — clang/include/clang/AST ExprCXX.h ExternalASTSource.h, clang/include/clang/StaticAnalyzer/Core/PathSensitive CallEvent.h

[clang] Replace PointerUnion::dyn_cast with llvm::dyn_cast (NFC) (#235232)

PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present.  This patch replaces
PointerUnion::dyn_cast with llvm::dyn_cast at 17 call sites across 11
files under clang/.

All tests in check-clang pass with these changes, and LLM-based static
analysis of the surrounding data structures and call sites confirms that
the PointerUnion operand at each site is nonnull either by construction
or because callers ensure it is nonnull before reaching llvm::dyn_cast.

Assisted-by: Antigravity
DeltaFile
+5-5clang/include/clang/AST/DeclTemplate.h
+2-4clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+3-3clang/include/clang/AST/ExternalASTSource.h
+3-2clang/lib/Serialization/MultiOnDiskHashTable.h
+2-2clang/include/clang/AST/ExprCXX.h
+1-1clang/lib/Serialization/ASTWriter.cpp
+16-175 files not shown
+21-2211 files

LLVM/project f45474e — llvm/lib/CodeGen/SelectionDAG SDNodeInfo.cpp

Revert "[SelectionDAG] Implement SDTCisSameAs in verifyNode." (#235329)

M68k is failing on the bots. I'll need to fix it or waive the broken
node, but I need time to investigate.

Reverts #235157
DeltaFile
+1-10llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp
+1-101 files

LLVM/project 4f2421f — llvm/include/llvm/Transforms/Utils BuildLibCalls.h, llvm/lib/Analysis TargetLibraryInfo.cpp

[TLI][SimplifyLibCalls] Accept [2 x iN] return type for __size_returing_new (#234856)

On AArch64 (AAPCS64), Clang lowers `struct __sized_ptr_t { void *p;
size_t n; }` as `[2 x i64]` (`llvm::ArrayType`), whereas on x86_64 it is
lowered as `{ ptr, i64 }` (`llvm::StructType`).

Additionally, `emitHotColdSizeReturningNew` and
`emitHotColdSizeReturningNewAligned` in `BuildLibCalls.cpp` previously
hardcoded `StructType::get(B.getContext(), {B.getPtrTy(), SizeTTy})` as
the return type of the newly emitted `_hot_cold` call, which would fail
`replaceAllUsesWith` when replacing a call returning `[2 x i64]`.

Assisted-by: Gemini Argon
DeltaFile
+37-0llvm/unittests/Analysis/TargetLibraryInfoTest.cpp
+12-12llvm/lib/Transforms/Utils/BuildLibCalls.cpp
+6-6llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+12-0llvm/test/Transforms/InstCombine/simplify-libcalls-new.ll
+5-5llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
+7-3llvm/lib/Analysis/TargetLibraryInfo.cpp
+79-263 files not shown
+99-319 files