LLVM/project 6c2f1e5 — lld/ELF Relocations.cpp

[ELF] Scan .eh_frame relocations first. NFC (#235389)

.eh_frame is usually the largest item, so one thread scans it while the
others are idle. Hand it out first.
DeltaFile
+5-4lld/ELF/Relocations.cpp
+5-41 files

LLVM/project a4b66d6 — lldb/source/Symbol Symbol.cpp, lldb/unittests/Target ReExportedSymbolTest.cpp

[LLDB] Skip Undef Symbol when resolving ReExportedSymbol

An undef symbol cannot be resolved. Skip it so that a symbol needs no
Resolve can pass. Without this, a symbol that needs no ReExport resolver
can choose the undef symbol incorrectly.

Assisted-by:    Claude # Test
DeltaFile
+56-0lldb/unittests/Target/ReExportedSymbolTest.cpp
+2-0lldb/source/Symbol/Symbol.cpp
+58-02 files

LLVM/project 0b6b6ed — llvm/include/llvm/Support Allocator.h

[Allocator] Cap MinAlign at alignof(max_align_t) (#235373)

alignof(std::max_align_t) is 4 on NetBSD/i386, whose <stddef.h> defines
max_align_t as a union of void *, long double, and long long.

Fix #230782
DeltaFile
+1-1llvm/include/llvm/Support/Allocator.h
+1-11 files

LLVM/project 9460110 — llvm/lib/Target/RISCV RISCVISelLowering.h RISCVISelLowering.cpp, llvm/test/Transforms/CodeGenPrepare/RISCV dont-sink-vector-compare.ll

[RISCV] Return true for vector registers in hasMultipleConditionRegisters (#234876)
DeltaFile
+59-0llvm/test/Transforms/CodeGenPrepare/RISCV/dont-sink-vector-compare.ll
+4-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-0llvm/lib/Target/RISCV/RISCVISelLowering.h
+65-03 files

LLVM/project 6636b41 — llvm/lib/Target/BPF BPFMISimplifyPatchable.cpp BTFDebug.cpp, llvm/test/CodeGen/BPF/CORE reloc-carrier-punctuation.ll offset-reloc-subarray.ll

[BPF] Disambiguate CO-RE relocation globals (#234252)

The BPF backend encodes the relocation kind, local value and access path
in a global name. Type names such as `S<ns::Arg$>` can contain both
delimiters. Decode the fixed suffix from the right in instruction
folding and BTF emission. This fixes the compiler crash reported in
#233947.

Within a module, different debug types can produce the same name. A
pointer access and a 32-bit field-offset query can also have the same
name with different load types. Reuse an external relocation global only
when its debug root and load type match. Put any discriminator before
the suffix so both consumers read the original relocation.

Assisted-by: OpenAI Codex
DeltaFile
+185-225llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
+72-0llvm/test/CodeGen/BPF/CORE/reloc-carrier-identity.ll
+48-0llvm/test/CodeGen/BPF/CORE/offset-reloc-subarray.ll
+40-0llvm/test/CodeGen/BPF/CORE/reloc-carrier-punctuation.ll
+5-15llvm/lib/Target/BPF/BTFDebug.cpp
+2-8llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp
+352-2481 files not shown
+361-2487 files

LLVM/project fd41135 — libunwind/src UnwindRegistersSave.S UnwindRegistersRestore.S, libunwind/test x86_64_getcontext_preserves_rbx.pass.cpp x86_64_resume_extended_registers.pass.cpp

[libunwind] Support extended amd64 segment registers (#229176)

Raise the amd64 DWARF register limit to 59 and add RFLAGS, all six
segment selectors, FS.base, and GS.base to the register model. Capture
the extended state and restore it when resuming, using sigreturn() on
FreeBSD to restore selectors and bases together. Pack the state into the
existing context buffers without changing their public sizes or the
Windows XMM offsets.

Add tests for register access, signal-frame CFI recovery, register
bounds, and resume behavior.

Assisted-by: GPT
DeltaFile
+163-0libunwind/test/x86_64_extended_registers.pass.cpp
+150-0libunwind/test/x86_64_resume_extended_registers.pass.cpp
+92-7libunwind/src/Registers.hpp
+80-0libunwind/test/x86_64_getcontext_preserves_rbx.pass.cpp
+62-7libunwind/src/UnwindRegistersRestore.S
+57-5libunwind/src/UnwindRegistersSave.S
+604-197 files not shown
+772-2213 files

LLVM/project c8b043a — utils/bazel/llvm-project-overlay/lldb/source/Plugins plugin_config.bzl BUILD.bazel

[lldb][bazel] Add targets for the remaining unconditional plugins (#235325)

CMake builds these plugins on every host, but the Bazel overlay had no
targets for them:

- PluginABILoongArch
- PluginDynamicLoaderFreeBSDKernel
- PluginPlatformAIX
- PluginPlatformFreeBSD
- PluginPlatformNetBSD
- PluginPlatformOpenBSD
- PluginTypeSystemClike

I also added these to the DEFAULT_PLUGINS list.

For now, I'm still leaving out plugins that CMake only builds with an
optional dependency or on a specific host:

- ProcessFreeBSDKernelCore (FreeBSD hosts, libkvm)

    [8 lines not shown]
DeltaFile
+124-0utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+7-0utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
+131-02 files

LLVM/project 5e767e5 — clang/www c_dr_status.html, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-llvm.amdgcn.image.sample.a16.ll legalize-llvm.amdgcn.image.dim.a16.ll

Merge branch 'main' into users/lukel97/riscv/dont-sink-vector-compares
DeltaFile
+2,112-452llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.dim.a16.ll
+1,740-729llvm/test/CodeGen/X86/bfloat.ll
+1,222-1,222llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+1,060-1,060llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+1,572-467clang/www/c_dr_status.html
+945-983llvm/test/CodeGen/X86/atomic-load-store.ll
+8,651-4,9131,488 files not shown
+71,839-35,1291,494 files

LLVM/project 57f5cdf — llvm/lib/Target/AMDGPU GCNFeatures.td AMDGPUFeatures.td, llvm/test/CodeGen/AMDGPU lds-size-gfx9-4-generic.ll

[AMDGPU] Fix gfx9-4-generic LDS allocation granule (#235163)

`gfx9-4-generic` paired gfx950's 1280-byte allocation granule with
gfx942's 64 KiB LDS capacity.

Use gfx942's 512-byte granule, which matches the capacity. 

Refer to ISA Doc Section 3.6.5

Fixes LCOMPILER-3031.
DeltaFile
+16-4llvm/test/CodeGen/AMDGPU/lds-size-gfx9-4-generic.ll
+1-5llvm/unittests/TargetParser/TargetParserTest.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPUFeatures.td
+1-1llvm/lib/Target/AMDGPU/GCNFeatures.td
+20-124 files

LLVM/project 3e2f99b — llvm/include/llvm/Analysis MemorySSA.h, llvm/lib/Analysis MemorySSA.cpp

[MemorySSA] Remove unused functions (NFC) (#235374)

Remove MemoryPhi::unorderedDeleteIncomingValue, upward_defs and
ClobberWalker::const_def_path, which have no callers, together with the
const_def_path_iterator alias only used by const_def_path.
DeltaFile
+0-12llvm/include/llvm/Analysis/MemorySSA.h
+0-7llvm/lib/Analysis/MemorySSA.cpp
+0-192 files

LLVM/project 301640d — llvm/lib/Analysis LoopAccessAnalysis.cpp, llvm/test/Analysis/LoopAccessAnalysis zero-sized-access-type.ll

[LAA] Avoid division by zero for zero-sized access types. (#235372)

Zero-sized access types lead to divide-by-zero in getStrideFromAddRec.

Bail out if that would be the case.
DeltaFile
+47-0llvm/test/Analysis/LoopAccessAnalysis/zero-sized-access-type.ll
+3-0llvm/lib/Analysis/LoopAccessAnalysis.cpp
+50-02 files

LLVM/project 4d7292e — libunwind/include __libunwind_config.h, libunwind/src UnwindCursor.hpp

[libunwind] Unwind through AArch64 FreeBSD signal trampolines (#235065)

Retried from https://reviews.llvm.org/D155066.

Recognize signal trampolines using KERN_PROC_SIGTRAMP when unwind
metadata is unavailable. Restore the interrupted PC, LR, SP, general
registers, and valid floating-point registers.

Add coverage for unwinding out of an interrupted leaf function on both
regular and alternate signal stacks.

Assisted-by: GPT
DeltaFile
+103-0libunwind/test/aarch64_freebsd_signal_unwind.pass.cpp
+76-1libunwind/src/UnwindCursor.hpp
+3-0libunwind/include/__libunwind_config.h
+2-0libunwind/test/aarch64_za_unwind.pass.cpp
+184-14 files

LLVM/project 36985ee — libc/test/src/math/exhaustive cos.wc sin.wc, llvm/lib/Support UnicodeNameToCodepointGenerated.cpp

Merge branch 'main' into users/hulxv/ci/compiler-rt/check-libc-freestanding
DeltaFile
+1,091,085-0libc/test/src/math/exhaustive/sin.wc
+1,090,178-0libc/test/src/math/exhaustive/cos.wc
+98,508-116,745llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+30,284-36,334llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+32,750-17,381llvm/test/CodeGen/AMDGPU/frem.ll
+23,347-23,371llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+2,366,152-193,83136,260 files not shown
+5,365,981-1,645,05936,266 files

LLVM/project 7e2f1c5 — llvm/test/Analysis/CostModel/RISCV arith-int.ll clmul.ll, llvm/test/Transforms/LoopVectorize/RISCV early-exit-live-out.ll

[RISCV][TTI] Multiplication is high-cost without M extension (#235363)

This fixes a regression exposed in a future patch that came up when
working on LSR where suddenly we were emitting a multiplication libcall
in a test that didn't specify having the M extension because LSR thought
it was cheap.

I don't think lacking an M extension is common, but this is a pretty
small change and probably helps people compiling code to RISCV on really
small/cheap cores.

Assisted-by: LLM
DeltaFile
+96-96llvm/test/Analysis/CostModel/RISCV/mulh.ll
+13-15llvm/test/Transforms/SLPVectorizer/RISCV/long-gep-chains.ll
+5-8llvm/test/Transforms/SLPVectorizer/RISCV/gep-mixed-index-types.ll
+5-5llvm/test/Analysis/CostModel/RISCV/clmul.ll
+3-3llvm/test/Analysis/CostModel/RISCV/arith-int.ll
+4-2llvm/test/Transforms/LoopVectorize/RISCV/early-exit-live-out.ll
+126-1293 files not shown
+133-1339 files

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