LLVM/project 82885a1 — llvm/include/llvm/Support SuffixTree.h, llvm/lib/Support SuffixTree.cpp

[Support][NFC] Initialize suffix tree metadata during construction (#232720)

Compute internal path lengths and leaf suffix starts during insertion to
eliminate the final `setSuffixIndices()` traversal.

This change preserves functional behavior while avoiding the final
metadata traversal.

SuffixTree construction CPU time against main `f14f34f217a9`:
Core i9-13900K, Linux x86_64, X86 `-Oz`, outlining always enabled,
leaf descendants enabled. Sum inputs per round; for each version, drop
the minimum and maximum of 10 rounds and average the remaining 8.

| Workload | Mode | Baseline (s) | Optimized (s) | CPU change |
| --- | --- | ---: | ---: | ---: |
| CTMark | NoLTO | 0.185136 | 0.174090 | -5.97% |
| CTMark | FullLTO | 0.086525 | 0.075911 | -12.27% |
| SPEC2017 C/C++ Rate | NoLTO | 1.232714 | 1.156888 | -6.15% |
| SPEC2017 C/C++ Rate | FullLTO | 0.570815 | 0.456092 | -20.10% |

    [6 lines not shown]
DeltaFile
+8-33llvm/lib/Support/SuffixTree.cpp
+0-4llvm/include/llvm/Support/SuffixTree.h
+8-372 files

LLVM/project 7d2b3c9 — llvm/docs ReleaseNotes.md, llvm/utils/TableGen InstrInfoEmitter.cpp GlobalISelEmitter.cpp

[TableGen] Remove HwMode expansion from CodeGenDAGPatterns. (#238932)

GlobalISel and Selection both handle HwMode expansion during instruction
selection now.

The only remaining user is FastISel, but no in tree target uses FastISel
with HwModes. If it becomes necessary, I think it should be done at
selection time like SelectionDAG and GlobalISel. For now, FastISel will
skip patterns that use HwMode.

Assisted-by: Claude
DeltaFile
+2-115llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+11-2llvm/utils/TableGen/FastISelEmitter.cpp
+4-8llvm/utils/TableGen/Common/CodeGenDAGPatterns.h
+2-4llvm/utils/TableGen/GlobalISelEmitter.cpp
+1-2llvm/utils/TableGen/InstrInfoEmitter.cpp
+3-0llvm/docs/ReleaseNotes.md
+23-1311 files not shown
+24-1327 files

LLVM/project 5f43e2c — llvm/include/llvm/IR DroppedVariableStats.h, llvm/lib/CodeGen DroppedVariableStatsMIR.cpp

DroppedVarStats: Count variables visible from inlined frames (#239280)

A dropped variable is only counted if an instruction remains from which
a debugger could observe it. The check needs to consider all inlined
frames to check if the variable is visible from one. The old code would
have false negatives as it wouldn't consider inlined scopes as visible
(see added tests inlined_code_in_scope and
nested_inlined_code_in_scope).

Also remove VisitedScope, which guarded against cycles, but cycles
cannot happen in scopes.

Assisted-by: Claude
DeltaFile
+83-3llvm/test/Other/dropped-var-stats-inlined-instances.ll
+22-43llvm/lib/IR/DroppedVariableStats.cpp
+9-12llvm/include/llvm/IR/DroppedVariableStats.h
+1-2llvm/lib/CodeGen/DroppedVariableStatsMIR.cpp
+1-1llvm/lib/IR/DroppedVariableStatsIR.cpp
+116-615 files

LLVM/project bf51440 — flang-rt/lib/runtime exceptions.cpp

[flang-rt][cuda] Fix the aarch64 build of the runtime with CUDA 12.0 (#239488)
DeltaFile
+15-3flang-rt/lib/runtime/exceptions.cpp
+15-31 files

LLVM/project 6600c16 — llvm/lib/Target/ARC CMakeLists.txt ARCSubtarget.h

[ARC] Declare command line options in TableGen (#239691)

Move the cl::opt options into ARCOptions.td. ARCTargetMachine holds
`const ARCOptions &CLOpts`, and ARCSubtarget copies it.

LLM-aided
DeltaFile
+12-15llvm/lib/Target/ARC/ARCOptAddrMode.cpp
+18-0llvm/lib/Target/ARC/ARCOptions.td
+6-10llvm/lib/Target/ARC/ARCFrameLowering.cpp
+8-3llvm/lib/Target/ARC/ARCSubtarget.cpp
+8-2llvm/lib/Target/ARC/ARCSubtarget.h
+4-0llvm/lib/Target/ARC/CMakeLists.txt
+56-302 files not shown
+63-308 files

LLVM/project ed4d199 — lldb/source/Plugins/Process/gdb-remote GDBRemoteRegisterContext.cpp, lldb/test/API/functionalities/gdb_remote_client arm64-ios-main.yaml TestRestoreRegistersAfterReconfigure.py

[lldb] Don't restore registers saved under a different layout (#239445)

When g packets are avoided, WriteAllRegisterValues restores each
register by indexing the saved buffer with the current register offsets.
A reconfigure between save and restore, such as a change of the SVE
vector length, can move those offsets past the end of the buffer, in
which case lldb reads out of bounds and sends the bytes to the stub.

Fail the restore when the buffer size no longer matches the register
data size.

rdar://186993734
Assisted-by: Claude
DeltaFile
+110-0lldb/test/API/functionalities/gdb_remote_client/TestRestoreRegistersAfterReconfigure.py
+48-0lldb/test/API/functionalities/gdb_remote_client/arm64-ios-main.yaml
+4-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
+162-03 files

LLVM/project 1b88a35 — llvm/include/llvm/MC MCGOFFAttributes.h MCSymbolGOFF.h, llvm/lib/MC GOFFObjectWriter.cpp

[SystemZ][z/OS] Make symbols renameable

z/OS can rename symbols, but only if the symbol is marked as
renameable in the ESD record. Until now all symbols were emitted as
non-renameable. Mark them renameable by default, with these exceptions:
- CELQSTRT and CELQINPL stay non-renameable.
- CELQBST is renameable.
Section-level PR symbols are unchanged.

Add a renameable flag to MCSymbolGOFF and the ER attributes, and
update the affected tests.

Note that HLASM has no way to express this flag, so it is only
visible in the GOFF object output.

Assisted by: IBM Bob
DeltaFile
+12-4llvm/include/llvm/MC/MCSymbolGOFF.h
+7-5llvm/lib/MC/GOFFObjectWriter.cpp
+5-3llvm/lib/Target/SystemZ/SystemZXPLINKAsmPrinter.cpp
+3-3llvm/test/CodeGen/SystemZ/zos-section-1.ll
+3-2llvm/include/llvm/MC/MCGOFFAttributes.h
+3-0llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h
+33-172 files not shown
+35-198 files

NetBSD/src vfGCOhh — sys/rump/librump/rumpkern lwproc.c

   rump: Copy struct proc::p_pgrp explicitly

   Now that it's not in p_startcopy/endcopy, the memcpy isn't enough.

   Should fix the thousands of test failures I caused by moving p_pgrp
   out of the p_startcopy/endcopy range!

   PR kern/60962: fork and spawn read p_pgrp without proc_lock
VersionDeltaFile
1.60+3-2sys/rump/librump/rumpkern/lwproc.c
+3-21 files

LLVM/project 0387066 — clang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp FactsGenerator.cpp

[LifetimeSafety] Support allocating/freeing functions annotated `ownership_takes`/`ownership_returns` (#213439)

This PR extends LifetimeSafety to model allocating/freeing functions
annotated with `__attribute__((ownership_returns))` /
`__attribute__((ownership_takes))`.

# Contents

* Adds `handleAllocatingCall`, which treats the call result as a fresh
allocation and issues a new loan for it (mirroring `new`).
* Adds `handleFreeingCall`, which treats the annotated arguments as
freed and invalidates their origins (mirroring `delete`), enabling
use-after-free and escape-invalidation diagnostics.
* Extends the `AccessPath` base union to also accept allocating
`CallExpr`s, keeping the number of alternatives unchanged. (breaks build
on 32-bit systems if 1 more template parameter is added)

Completes part of #213435

Assisted-by: DeepSeek V4 for writing most of the code
DeltaFile
+207-0clang/test/Sema/LifetimeSafety/safety.cpp
+47-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+39-0clang/test/Sema/LifetimeSafety/invalidations.cpp
+16-7clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+14-3clang/lib/Sema/SemaLifetimeSafety.h
+14-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+337-104 files not shown
+370-1310 files

LLVM/project ed6eead — clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp FactsGenerator.cpp, clang/test/Sema/LifetimeSafety safety.cpp

[LifetimeSafety] Support allocating/freeing functions and builtins (#213443)

This extends LifetimeSafety to model allocating/freeing functions annotated with "ownership_returns" / "ownership_takes", as well as malloc-style builtins without requiring any attributes.

Contents

* Adds "handleAllocatingCall", which treats allocation results as fresh allocations and issues new loans (mirroring "new").
* Adds "handleFreeingCall", which invalidates the origins of freed arguments (mirroring "delete"), enabling use-after-free and escape-invalidation diagnostics.
* Extends the "AccessPath" base union to support allocating "CallExpr"s without increasing the number of alternatives.
* Adds support for "malloc"/"calloc"/"realloc"/"free" and their "__builtin_" spellings as allocating/freeing functions.

Closes #213435

Assisted-by: DeepSeek V4 for writing most of the code
DeltaFile
+30-2clang/test/Sema/LifetimeSafety/safety.cpp
+21-8clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+20-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+5-0clang/test/Sema/LifetimeSafety/Inputs/lifetime-analysis.h
+76-104 files

FreeBSD/ports 24c0026 — comms/hamlib Makefile pkg-plist

Revert "comms/hamlib: fix plist after USES=tcl rework"

This botched commit breaks the plist when tcl version is set at
8.6, but not 9.1.

PR: 300092

This reverts commit ae14dbd670c1ac0f773bf629c268abc28a785236.
DeltaFile
+5-5comms/hamlib/pkg-plist
+1-0comms/hamlib/Makefile
+6-52 files

NetBSD/pkgsrc YKX52fJ — doc CHANGES-2026

   doc: Updated www/p5-HTTP-Body to 1.25
VersionDeltaFile
1.7691+2-1doc/CHANGES-2026
+2-11 files

FreeBSD/ports ee025ca — comms/hamlib pkg-plist

Revert "comms/hamlib: Fix build"

...to revert my own botched commit regarding tcl.

PR: 300092

This reverts commit 5b1b3c1332928ceb01ebf678ea00e362218dc95f.
DeltaFile
+6-7comms/hamlib/pkg-plist
+6-71 files

NetBSD/pkgsrc GKTiiXL — www/p5-HTTP-Body Makefile distinfo

   p5-HTTP-Body: update to 1.25.

   TOOL_DEPENDS -> TEST_DEPENDS for a test dependency.

   1.25      2026-11-05 18:47:08+01:00 Europe/Berlin
        - SECURITY, CVE-2026-117500: the suffix of an upload's filename is
          worked out from its last 255 bytes only, only when $file_temp_suffix
          is unset, and for the default $basename_regexp by a string search
          instead of the regexp; a filename of many dots ending in a backslash
          made the default $basename_regexp take time quadratic in its length
          (7 s per part at the 32 KiB header limit, once per part) in the
          default configuration
        - SECURITY, CVE-2026-117501: a chunked body is framed line by line with
          a limit on the chunk-size line ($HTTP::Body::max_chunk_line_size,
          1024 bytes), chunk data is passed on as it arrives instead of being
          held until the chunk is complete, malformed framing (a line that is
          no chunk-size line, a size that does not fit an integer, chunk data
          not followed by CRLF) croaks instead of buffering forever, and
          nothing after the trailer or after the body parser is done is kept

    [21 lines not shown]
VersionDeltaFile
1.17+4-4www/p5-HTTP-Body/distinfo
1.35+3-3www/p5-HTTP-Body/Makefile
+7-72 files

LLVM/project 7642deb — llvm/test/Analysis/CostModel/X86 masked-intrinsic-cost.ll

[CostModel][X86] Add f16/bf16 masked load/store test coverage (#239666)
DeltaFile
+788-178llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
+788-1781 files

LLVM/project 40926f7 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 spillcost-gather-vector-parts.ll

[SLP]Count spills of vectorized parts of gather nodes

Vectorized parts of a gather node are combined at its user and stay
live across non-vectorized calls in between, which spill cost missed.

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/239687
DeltaFile
+10-7llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-gather-vector-parts.ll
+14-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+24-72 files

LLVM/project b13438d — llvm/lib/CodeGen RegisterCoalescer.cpp, llvm/test/CodeGen/AArch64 coalescer-readundef-subreg-def-subregtoreg.mir coalescer-readundef-subreg-def.mir

Coalescer: Preserve read-undef when coalescing into a larger reg.

When rewriting a %1:gpr32 def into %0.sub_32:gpr64, the new def operand
can be marked with undef if no lanes from the larger gpr64 reg are live.

Assisted-by: codex (test reduction)
DeltaFile
+115-0llvm/test/CodeGen/AArch64/coalescer-readundef-subreg-def.mir
+65-0llvm/test/CodeGen/AArch64/coalescer-readundef-subreg-def-subregtoreg.mir
+14-1llvm/lib/CodeGen/RegisterCoalescer.cpp
+194-13 files

LLVM/project a2bc324 — llvm/lib/Target/AArch64 AArch64RegisterInfo.cpp, llvm/test/CodeGen/AArch64 subreg-to-reg-coalescing.mir fcvt-i256.ll

[AArch64] Eliminate shouldCoalesce restriction.

This does not enforce much, we are already very careful about ORRW,
which is only considered as a copy instruction when we can prove it's
not performing a required zero extension.
DeltaFile
+20-25llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll
+7-7llvm/test/CodeGen/AArch64/predicate-as-counter-loop-rewrites.ll
+6-7llvm/test/CodeGen/AArch64/implicit-def-subreg-to-reg-regression.ll
+0-9llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+1-8llvm/test/CodeGen/AArch64/fcvt-i256.ll
+3-4llvm/test/CodeGen/AArch64/subreg-to-reg-coalescing.mir
+37-605 files not shown
+42-7211 files

LLVM/project 3d6e86b — llvm/test/CodeGen/AArch64 subreg-to-reg-coalescing.mir

Clarify subreg-to-reg-coalescing.mir test intent
DeltaFile
+17-64llvm/test/CodeGen/AArch64/subreg-to-reg-coalescing.mir
+17-641 files

LLVM/project d844937 — llvm/lib/Target/DirectX DXILLegalizePass.cpp, llvm/test/CodeGen/DirectX legalize-i8-alloca.ll legalize-intrinsic-operands.ll

[DirectX] Generalize integer legalization while preserving intrinsic ABI operands (#233491)

Share SSA legalization across unsupported integer widths, including i8,
using legal i32/i64 carriers and width-aware signed and unsigned
normalization.

The previous PR failed becuase it did not preserve fixed intrinsic ABI
operands for resource counters and shader input/output operations. This
change does.

Add regression coverage for integer semantics, intrinsic lowering, and
profile metadata, and document the legalization behavior.

Fixes #225169

Assisted by GPT 6.1-Sol via Co-pilot

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
DeltaFile
+216-122llvm/lib/Target/DirectX/DXILLegalizePass.cpp
+337-0llvm/test/CodeGen/DirectX/legalize-integers.ll
+124-80llvm/test/CodeGen/DirectX/legalize-i8.ll
+146-0llvm/test/CodeGen/DirectX/legalize-integers-defined.ll
+49-0llvm/test/CodeGen/DirectX/legalize-intrinsic-operands.ll
+19-9llvm/test/CodeGen/DirectX/legalize-i8-alloca.ll
+891-2116 files not shown
+952-21112 files

LLVM/project 6f766b2 — clang/lib/CIR/CodeGen CIRGenModule.cpp, clang/test/CIR/CodeGen named-module-available-externally-skip.cppm

[CIR] Skip function bodies imported from other named modules

When a function's body comes from another named module, CIRGen now emits
just a declaration instead of hitting an errorNYI.  always_inline
template instantiations still get their bodies, since a library may not
provide symbols for them.

Assisted-by: Cursor / Claude Opus 5.5
DeltaFile
+112-0clang/test/CIR/CodeGen/named-module-available-externally-skip.cppm
+6-4clang/lib/CIR/CodeGen/CIRGenModule.cpp
+118-42 files

LLVM/project dd0608c — llvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize outer-loop-bitextract.ll bitextract-bitinsert.ll

[LV] Widen `bitextract` and `bitinsert`
DeltaFile
+306-0llvm/test/Transforms/LoopVectorize/bitextract-bitinsert.ll
+132-0llvm/test/Transforms/LoopVectorize/RISCV/bitextract-bitinsert-scalable.ll
+109-0llvm/test/Transforms/LoopVectorize/X86/bitextract-bitinsert-cost.ll
+95-0llvm/test/Transforms/LoopVectorize/outer-loop-bitextract.ll
+29-14llvm/lib/Transforms/Vectorize/VPlan.h
+42-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+713-152 files not shown
+733-158 files

LLVM/project 6bfeba9 — llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/test/CodeGen/AArch64 sve-widen-trapping-binops.ll

[SelectionDAG] CollectOpsToWiden should use ElementCount safe maths when padding result. (#239657)
DeltaFile
+12-0llvm/test/CodeGen/AArch64/sve-widen-trapping-binops.ll
+2-1llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+14-12 files

LLVM/project 92f0a3e — llvm/include/llvm/Analysis TargetTransformInfo.h TargetTransformInfoImpl.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[TTI] Cost `bitinsert` and `bitextract` by their lowering
DeltaFile
+26-26llvm/test/Analysis/CostModel/X86/bitinsert-bitextract.ll
+47-0llvm/include/llvm/CodeGen/BasicTTIImpl.h
+20-0llvm/lib/Analysis/TargetTransformInfo.cpp
+20-0llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+12-0llvm/include/llvm/Analysis/TargetTransformInfo.h
+125-265 files

LLVM/project ac4d422 — llvm/test/Analysis/CostModel/X86 bitinsert-bitextract.ll

[TTI] Pre-commit tests for `bitinsert` and `bitextract` costs
DeltaFile
+74-0llvm/test/Analysis/CostModel/X86/bitinsert-bitextract.ll
+74-01 files

LLVM/project 2dd3325 — llvm/test/tools/llubi bitinsert_bitextract_le.ll bitinsert_bitextract_be.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Add support for vector `bitinsert` and `bitextract`
DeltaFile
+25-22llvm/tools/llubi/lib/Interpreter.cpp
+28-0llvm/test/tools/llubi/bitinsert_bitextract_le.ll
+28-0llvm/test/tools/llubi/bitinsert_bitextract_be.ll
+81-223 files

LLVM/project c792019 — llvm/lib/Analysis InstructionSimplify.cpp, llvm/test/Transforms/InstSimplify bitinsert-bitextract.ll

[InstSimplify] Simplify vector `bitinsert` and `bitextract` with out-of-range offsets
DeltaFile
+7-5llvm/lib/Analysis/InstructionSimplify.cpp
+2-4llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+9-92 files

LLVM/project 0890dc0 — llvm/test/Transforms/InstSimplify bitinsert-bitextract.ll

[InstSimplify] Pre-commit tests for vector `bitinsert` and `bitextract` with out-of-range offsets
DeltaFile
+31-0llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+31-01 files

LLVM/project 67ef4ce — llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstSimplify/ConstProp bitinsert-bitextract.ll

[ConstantFolding] Fold vector `bitinsert` and `bitextract`
DeltaFile
+65-6llvm/lib/Analysis/ConstantFolding.cpp
+9-18llvm/test/Transforms/InstSimplify/ConstProp/bitinsert-bitextract.ll
+74-242 files

LLVM/project c560ce1 — llvm/test/Transforms/InstSimplify/ConstProp bitinsert-bitextract.ll

[ConstantFolding] Pre-commit tests for vector `bitinsert` and `bitextract`
DeltaFile
+83-0llvm/test/Transforms/InstSimplify/ConstProp/bitinsert-bitextract.ll
+83-01 files