LLVM/project 7722913clang/lib/Interpreter IncrementalParser.h IncrementalParser.cpp, clang/unittests/Interpreter InterpreterTest.cpp

[clang-repl] Unlink the withdrawn partial translation unit on Undo (#213235)

`Interpreter::Undo()` cleared name lookup for a withdrawn input but left its `TranslationUnitDecl` in the redeclaration chain, so walking the chain still reached declarations the user had removed. `ASTContext::TUDecl` also still pointed at the withdrawn unit, so the next input chained onto it.

`IncrementalParser::CleanUpPTU` now rebuilds the redeclaration chain without the withdrawn unit and makes its predecessor current again, the way cling's `removeRedeclFromChain` does. This needs no new AST API — `Redeclarable` and `ASTContext` already declare `friend class IncrementalParser`. The declarations stay bump-allocated in the `ASTContext`; they just stop being reachable, which is what the removed `// FIXME: We should de-allocate MostRecentTU` asked for.

`CleanUpPTU` also runs on the parse-failure path, so a failed input no longer leaves its unit in the chain either.

Fixes #213230.

---------

Co-authored-by: Emery Conrad <emery.conrad at chicagotrading.com>
DeltaFile
+48-0clang/unittests/Interpreter/InterpreterTest.cpp
+22-1clang/lib/Interpreter/IncrementalParser.cpp
+4-0clang/lib/Interpreter/IncrementalParser.h
+74-13 files

LLVM/project f03829blldb/source/Expression DWARFExpression.cpp, lldb/unittests/Expression DWARFExpressionTest.cpp

[lldb] Keep address operation values address-sized (#216661)

`DW_OP_addr`, `DW_OP_addrx`, and `DW_OP_GNU_addr_index` currently push
`Scalar` values constructed from 64-bit C++ types. On 32-bit targets,
subsequent generic arithmetic therefore retains a 64-bit width instead
of wrapping at the target address size.

Use the evaluator's existing `to_generic` conversion when pushing these
address values. This keeps the scalar at the target address width
without changing operand decoding or public APIs.

Add unit coverage for direct and indexed address operations that checks
both 32-bit wraparound and the resulting APSInt width.

Fixes #210972
DeltaFile
+32-2lldb/unittests/Expression/DWARFExpressionTest.cpp
+2-2lldb/source/Expression/DWARFExpression.cpp
+34-42 files

OPNSense/plugins 6f57794net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms dialogEditBGPNeighbor.xml, net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga BGP.xml

net/frr: Add address family dropdown to neighbors, replacing implicit Multi-Protocol toggle, making it inline with what peergroups offer
DeltaFile
+75-0net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/Migrations/M1_1_3.php
+7-12net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPNeighbor.xml
+5-8net/frr/src/opnsense/service/templates/OPNsense/Quagga/Config/bgpd.conf
+10-2net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
+97-224 files

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

[SCEV] Introduce getOrCreateUDivExpr (NFC) (#216832)

Avoid error-prone munging SCEVUses in place in getUDivExpr, and allocate
the operands uniformly in a new getOrCreateUDivExpr.
DeltaFile
+21-29llvm/lib/Analysis/ScalarEvolution.cpp
+3-0llvm/include/llvm/Analysis/ScalarEvolution.h
+24-292 files

OpenBSD/ports eU6KsVwwww/mozilla-firefox/patches patch-security_nss_symbols patch-js_src_ctypes_libffi_src_dlmalloc_c

   www/mozilla-firefox: MFC update to 154.0.

   see https://www.firefox.com/en-US/firefox/154.0/releasenotes/
   fixes https://www.mozilla.org/en-US/security/advisories/mfsa2026-74/

   - revert bits of https://phabricator.services.mozilla.com/D306631 to keep
   building against nss 3.123
   - add patch from #2057158 to fix the build after angle update in #2035541
VersionDeltaFile
1.1.2.1+91-0www/mozilla-firefox/patches/patch-dom_crypto_CryptoKey_cpp
1.1.8.1+23-0www/mozilla-firefox/patches/patch-security_manager_ssl_nsNSSCallbacks_cpp
1.1.10.1+16-0www/mozilla-firefox/patches/patch-security_manager_ssl_nsNSSIOLayer_cpp
1.1.2.1+13-0www/mozilla-firefox/patches/patch-security_manager_ssl_ScopedNSSTypes_h
1.6.18.2+6-6www/mozilla-firefox/patches/patch-js_src_ctypes_libffi_src_dlmalloc_c
1.1.2.1+11-0www/mozilla-firefox/patches/patch-security_nss_symbols
+160-68 files not shown
+166-1214 files

LLVM/project 9df790eclang/include/clang/CIR/Dialect/IR CIRTypeConstraints.td, clang/test/CIR/CodeGen vector-bool.cpp

[CIR] Support Vector of bool in Bitwise And, Or and XOR ops (#216681)

Support the Vector of bool type in Bitwise And, Or, and XOR operations
DeltaFile
+53-0clang/test/CIR/CodeGen/vector-bool.cpp
+3-3clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
+56-32 files

FreeBSD/ports 2efbc33security Makefile, security/periodic-filter-vuxml pkg-descr pkg-message

security/periodic-filter-vuxml: New port
DeltaFile
+118-0security/periodic-filter-vuxml/files/400.filter-vuxml.in
+28-0security/periodic-filter-vuxml/Makefile
+25-0security/periodic-filter-vuxml/pkg-message
+2-0security/periodic-filter-vuxml/pkg-descr
+1-0security/Makefile
+174-05 files

OpenBSD/ports BYwYz0Kwww/firefox-esr Makefile distinfo

   www/firefox-esr: update to 140.14.0.

   see https://www.firefox.com/en-US/firefox/140.14.0/releasenotes/
   fixes https://www.firefox.com/en-US/firefox/140.14.0/releasenotes/

   note that the esr140 branch will be EOL in october
VersionDeltaFile
1.180.2.5+4-4www/firefox-esr/distinfo
1.270.2.5+2-2www/firefox-esr/Makefile
+6-62 files

OpenBSD/ports F5yGYxgwww/firefox-esr Makefile, www/firefox-esr-i18n distinfo

   www/firefox-esr: majot update from 140 to 153.1.0.

   see https://www.firefox.com/en-US/firefox/153.1.0/releasenotes/
   and https://www.firefox.com/en-US/firefox/153.0esr/releasenotes/
   fixes https://www.mozilla.org/en-US/security/advisories/mfsa2026-77/

   merges most of the changes that happened in www/mozilla-firefox, that is:
   - patches from matthieu for xshm 1.2 support for screen sharing (#1702919)
   - patch to fix arrow keys in js terminals (Proxmox/ESXi for example)
   - ship policies.json to neuter the AI madness
   - drop patches for icu 78, python 3.14, llvm22, ffmpeg8...
VersionDeltaFile
1.182+162-162www/firefox-esr-i18n/distinfo
1.1+108-0www/firefox-esr/patches/patch-third_party_libwebrtc_modules_desktop_capture_linux_x11_x_server_pixel_buffer_cc
1.1+72-0www/firefox-esr/patches/patch-widget_NativeKeyToDOMCodeName_inc
1.1+47-0www/firefox-esr/files/policies.json
1.1+27-0www/firefox-esr/patches/patch-third_party_libwebrtc_modules_desktop_capture_linux_x11_x_server_pixel_buffer_h
1.277+12-12www/firefox-esr/Makefile
+428-17420 files not shown
+447-19126 files

LLVM/project d759931llvm/include/llvm/Analysis VectorUtils.h, llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp

Fixups
DeltaFile
+1-2llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+1-1llvm/include/llvm/Analysis/VectorUtils.h
+2-32 files

LLVM/project 6f39ec7llvm/lib/Analysis LoopAccessAnalysis.cpp, llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp VPlanTransforms.h

Rework
DeltaFile
+117-0llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+0-53llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+6-35llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+16-2llvm/lib/Analysis/LoopAccessAnalysis.cpp
+9-7llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+11-4llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+159-1014 files not shown
+167-11610 files

LLVM/project ec01f3bllvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll compress-idioms.ll

Fixups
DeltaFile
+106-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+3-32llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+0-32llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-9llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-2llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+0-3llvm/lib/Transforms/Vectorize/VPlan.h
+111-806 files

LLVM/project b8db9e4llvm/lib/Transforms/Vectorize VPlanHelpers.h LoopVectorize.cpp

Remove helper
DeltaFile
+0-5llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-4llvm/lib/Transforms/Vectorize/VPlanHelpers.h
+0-92 files

LLVM/project 4486ff1llvm/lib/Transforms/Vectorize VPlanConstruction.cpp VPlan.h

Don't allow null phi
DeltaFile
+4-6llvm/lib/Transforms/Vectorize/VPlan.h
+1-1llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+5-72 files

LLVM/project 3d688b5llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll compress-idioms.ll

Rebase fixups
DeltaFile
+8-8llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+3-3llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+11-112 files

LLVM/project 1942d0dllvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h, llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPRecipeBuilder.h

Fixups
DeltaFile
+112-118llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+47-32llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+18-8llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+13-3llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+5-0llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+4-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+199-1616 files

LLVM/project e53cc83llvm/test/Transforms/LoopVectorize compress-idioms.ll

Test uncond increment
DeltaFile
+96-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+96-21 files

LLVM/project 2747889llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll compress-idioms.ll

Move negative tests to new file
DeltaFile
+0-105llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+94-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+0-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+94-1063 files

LLVM/project 455094ellvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlan.h, llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll

Fix epilogue resume handling
DeltaFile
+98-0llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+5-5llvm/lib/Transforms/Vectorize/VPlan.h
+2-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+105-63 files

LLVM/project 679383dllvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h, llvm/test/Transforms/LoopVectorize compress-idioms.ll

[LoopVectorize] Support vectorization of compressing patterns in VPlan

RFC link: https://discourse.llvm.org/t/rfc-loop-vectorization-of-compress-store-expand-load-patterns/86442

This adds loop vectorizer support for "compressing" patterns,
for example:

```
int dst_idx = 0;
for (int i = 0; i < n; i++) {
  if (cond[i])
    dst[dst_idx++] = src[i];
}
```

Can be vectorized with a `llvm.masked.compressstore` as:

```
int dst_idx = 0;

    [52 lines not shown]
DeltaFile
+424-0llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+157-0llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+132-0llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+111-14llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+60-4llvm/lib/Transforms/Vectorize/VPlan.h
+49-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+933-1815 files not shown
+1,116-2621 files

LLVM/project e2156fdllvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+3-3llvm/lib/Analysis/IVDescriptors.cpp
+3-31 files

LLVM/project 456eb56llvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+1-1llvm/lib/Analysis/IVDescriptors.cpp
+1-11 files

LLVM/project 6586ae9llvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+8-12llvm/lib/Analysis/IVDescriptors.cpp
+8-121 files

LLVM/project 7202564llvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

Rework
DeltaFile
+10-23llvm/include/llvm/Analysis/IVDescriptors.h
+5-18llvm/lib/Analysis/IVDescriptors.cpp
+0-4llvm/unittests/Analysis/IVDescriptorsTest.cpp
+15-453 files

LLVM/project 7a4a3a9llvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+2-1llvm/lib/Analysis/IVDescriptors.cpp
+2-11 files

LLVM/project 188ed06llvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+29-16llvm/lib/Analysis/IVDescriptors.cpp
+6-0llvm/include/llvm/Analysis/IVDescriptors.h
+35-162 files

LLVM/project 2a520ballvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

Rework desc to check users
DeltaFile
+126-43llvm/lib/Analysis/IVDescriptors.cpp
+35-20llvm/include/llvm/Analysis/IVDescriptors.h
+6-11llvm/unittests/Analysis/IVDescriptorsTest.cpp
+167-743 files

LLVM/project d57ab4allvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

Fixups
DeltaFile
+2-2llvm/include/llvm/Analysis/IVDescriptors.h
+1-1llvm/lib/Analysis/IVDescriptors.cpp
+3-32 files

LLVM/project 4001eb0llvm/lib/Analysis IVDescriptors.cpp

remove ;
DeltaFile
+1-1llvm/lib/Analysis/IVDescriptors.cpp
+1-11 files

LLVM/project 36c824cllvm/include/llvm/Analysis IVDescriptors.h, llvm/lib/Analysis IVDescriptors.cpp

[IVDescriptors] Implement MonotonicDescriptor

RFC link: https://discourse.llvm.org/t/rfc-loop-vectorization-of-compress-store-expand-load-patterns/86442

"Monotonic" variable is similar to induction variable, but its value is updated under some condition, e.g.:
```
int idx = 0;
for(int i = 0; i < n; ++i) {
  // some uses of idx
  if (cond)
    ++idx;
}
```
In this example, `i` is induction variable and `idx` is monotonic variable: it's updated only when cond == true. In LLVM IR, this looks like:
```
loop_header:
  %monotonic_phi = [%start, %prehader], [ %chain_phi0, %latch]

step_bb:

    [26 lines not shown]
DeltaFile
+153-0llvm/unittests/Analysis/IVDescriptorsTest.cpp
+121-0llvm/lib/Analysis/IVDescriptors.cpp
+39-0llvm/include/llvm/Analysis/IVDescriptors.h
+313-03 files