LLVM/project e135197clang-tools-extra/clang-doc Representation.cpp Representation.h

[clang-doc] Support deep copy between arenas for merging

Upcoming changes to the merge step will necessitate that we clear the
transient arenas and merge new items into the persistent arena. However
there are some challenges with that, as the existing types typically
don't want to be copied. We introduce some new APIs to simplify that
task and ensure we don't accidentally leak memory.

On the performance front, we reclaim about 2% of the overhead, bringing
the cumulative overhead from the series of patches down to about 7% over
the baseline.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1014.5s | 991.5s | +7.7% | -2.3% |
| Memory | 86.0G | 39.9G | 40.0G | -53.4% | +0.3% |

| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |

    [28 lines not shown]
DeltaFile
+140-21clang-tools-extra/clang-doc/Representation.cpp
+30-0clang-tools-extra/clang-doc/Representation.h
+170-212 files

LLVM/project efe9924clang-tools-extra/clang-doc BitcodeReader.cpp Serialize.cpp, clang-tools-extra/unittests/clang-doc SerializeTest.cpp MergeTest.cpp

[clang-doc] Move Info types into arenas

Info types used to own significant chunks of data. As we move these into
local arenas, these types must be trivially destructible, to avoid
leaking resources when the arena is reset. Unfortunaly, there isn't a
good way to transition all the data types one at a time, since most of
them are tied together in some way. Further, as they're now allocated in
the arenas, they often cannot be treated the same way, and even the
aliases and interfaces put in pLace to simplify the transition cannot
cover the full range of changes required.

We also use some SFINAE tricks to avoid adding boilerplate for helper
APIs, we'd otherwise ahve to support

Though it introduces some additional churn, we also try to keep tests
from using arena allocation as much as possible, since this is not
required to test the implementation of the library. As much of the test
code needed to be rewritten anyway, we take the opportunity to
transition now.

    [41 lines not shown]
DeltaFile
+419-187clang-tools-extra/clang-doc/BitcodeReader.cpp
+246-189clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
+196-129clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+176-80clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
+137-75clang-tools-extra/clang-doc/Serialize.cpp
+71-41clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+1,245-70114 files not shown
+1,662-95220 files

LLVM/project 79fd2ceclang-tools-extra/clang-doc BitcodeReader.cpp Serialize.cpp, clang-tools-extra/unittests/clang-doc MDGeneratorTest.cpp BitcodeTest.cpp

[clang-doc] Make CommentInfo arena allocated

This patch move the CommentInfo type into the arena. It updates block
handling to collect child info types and serialize the array in one
shot.

We also clean up the test code to avoid using the arenas in the tests.
This has the upside of making the test more hermetic, and avoids churn
in the related code as the allocation API interfaces evolve.

Performance and memory usage regress slightly. This is somewhat expected
as we do not yet aggressively release short term memory during merge
operations. Future patches will reclaim this overhead.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 998.5s | 1010.5s | +9.8% | +1.2% |
| Memory | 86.0G | 43.8G | 47.8G | -44.4% | +9.2% |


    [26 lines not shown]
DeltaFile
+124-94clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
+70-111clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
+66-103clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+15-30clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+17-9clang-tools-extra/clang-doc/BitcodeReader.cpp
+15-5clang-tools-extra/clang-doc/Serialize.cpp
+307-3526 files not shown
+345-37012 files

LLVM/project ecb130aclang-tools-extra/clang-doc BitcodeReader.cpp BitcodeReader.h

[clang-doc] Simplify parsing and reading bitcode blocks

Much of the logic int he readBlock implementation is boilerplate, and is
repeated for each implementation/specialization. This will become much
worse as we introduce new custom block reading logic as we migrate
towards arena allocation. In preparation for that, we're introducing the
change in logic now, which should make later refactoring much more
straightforward.
DeltaFile
+103-120clang-tools-extra/clang-doc/BitcodeReader.cpp
+5-0clang-tools-extra/clang-doc/BitcodeReader.h
+1-1clang-tools-extra/clang-doc/Representation.h
+109-1213 files

LLVM/project a2e3831clang-tools-extra/clang-doc Representation.cpp

[clang-doc] Consolidate merging logic

As we migrate things in the arena, this logic may get more complex.
Factoring it out now, will give clear extension points to make this
easier to manage.
DeltaFile
+10-9clang-tools-extra/clang-doc/Representation.cpp
+10-91 files

LLVM/project 5ac5327clang-tools-extra/clang-doc Generators.h MDMustacheGenerator.cpp, clang-tools-extra/clang-doc/benchmarks ClangDocBenchmark.cpp

[clang-doc] Move non-arena allocated types off the OwnedPtr alias

Some types should not be using this alias, which was over applied to
APIs that wont participate in arena style allocation. This patch
restores them to their correct spelling.
DeltaFile
+7-7clang-tools-extra/clang-doc/Generators.h
+4-4clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
+4-4clang-tools-extra/clang-doc/ClangDoc.cpp
+3-3clang-tools-extra/clang-doc/HTMLGenerator.cpp
+2-2clang-tools-extra/clang-doc/benchmarks/ClangDocBenchmark.cpp
+1-1clang-tools-extra/clang-doc/Generators.cpp
+21-211 files not shown
+22-227 files

LLVM/project 5a11862clang-tools-extra/clang-doc Representation.cpp Representation.h, clang-tools-extra/unittests/clang-doc MergeTest.cpp ClangDocTest.cpp

[clang-doc] Migrate Namespaces to arena allocation

This patch allocates the NamespaceInfo types in the local arenas, and
adapts the merging logic for the new list type and its children.
Memory use and performance improve slightly. Micro-benchmarks show a
regression in merge operations due to the more complex list operations.

 ## Build Clang-Doc Documentation
| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1009.2s | 1002.4s | +8.9% | -0.7% |
| Memory | 86.0G | 43.2G | 43.9G | -49.0% | +1.6% |

 ## Microbenchmarks (Filtered for >1% Delta)
| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 69.7us | 69.3us | +1.9% | -0.7% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 22.3ms | 24.8ms | -64.8% | +11.4% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 4.7ms | 4.4ms | -80.9% | -5.7% |

    [22 lines not shown]
DeltaFile
+26-1clang-tools-extra/clang-doc/Representation.cpp
+8-8clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+8-2clang-tools-extra/clang-doc/Representation.h
+7-3clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
+6-3clang-tools-extra/clang-doc/JSONGenerator.cpp
+4-4clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
+59-217 files not shown
+83-3713 files

LLVM/project 79bcaf3clang-tools-extra/clang-doc Representation.h

[clang-doc] Enforce arena allocated types are trivially destructible

We can enforce at compile-time that the types we want to place in the
arenas are always safe to allocate there.
DeltaFile
+26-0clang-tools-extra/clang-doc/Representation.h
+26-01 files

LLVM/project 6c2a519clang-tools-extra/clang-doc Representation.cpp Representation.h, clang-tools-extra/clang-doc/tool ClangDocMain.cpp

[clang-doc] Merge data into persistent memory

We have a need for persistent memory for the final info. Since each
group processes a single USR at a time, every USR is only ever processed by
a single thread from the thread pool. This means that we can keep per
thread persistent storage for all the info. There is significant
duplicated data between all the serialized records, so we can just merge
the final/unique items into the persistent arena, and clear out the
scratch/transient arena as we process each record in the bitcode.

The patch adds some APIs to help with managing the data, merging, and
allocation of data in the correct arena. It also safely merges and deep
copies data from the transient arenas into persistent storage that is
never reset until the program completes.

This patch reduces memory by another % over the previous patches,
bringing the total savings over the baseline to 57%. Runtime performance
and benchmarks stay mostly flat with modest improvements.


    [31 lines not shown]
DeltaFile
+134-10clang-tools-extra/clang-doc/Representation.cpp
+25-25clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+7-0clang-tools-extra/clang-doc/Representation.h
+166-353 files

LLVM/project 55a8b9eclang-tools-extra/clang-doc Representation.h

[clang-doc] Prepare Info types for Arena allocation

To allocate Info structures directly in an Arena, they cannot have
members with nontrivial destructors, or we will leak memory. Before we
migrate them, we can replace growable vector types with intrusive lists.

This introduces some slight overhead as these types now have new pointer
members for use in ilists in later patches.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1005.7s | 1010.5s | +9.8% | +0.5% |
| Memory | 86.0G | 42.1G | 42.9G | -50.2% | +1.8% |

| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 68.6us | 69.2us | +1.9% | +0.9% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 21.3ms | 21.9ms | -68.9% | +2.8% |
| BM_BitcodeReader_Scale/4096 | 23.2ms | 4.6ms | 4.6ms | -80.0% | +0.8% |

    [24 lines not shown]
DeltaFile
+9-8clang-tools-extra/clang-doc/Representation.h
+9-81 files

LLVM/project 7f11bd4clang-tools-extra/clang-doc BitcodeReader.cpp Serialize.cpp, clang-tools-extra/unittests/clang-doc YAMLGeneratorTest.cpp BitcodeTest.cpp

[clang-doc] Introduce TransientArena for short lived allocations

With strings interned, we can move the StringRefs in various Info
structs into a new short lived arena. This change migrates the remaining
SmallVectors in CommentInfo to use an ArrayRef backed by the new
transient arena.

This results in further minor reductions in overall memory usage, but no
significant effect on runtime performance.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1011.0s | 1005.7s | +9.2% | -0.5% |
| Memory | 86.0G | 44.9G | 42.1G | -51.0% | -6.2% |

| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| BM_BitcodeReader_Scale/10 | 67.9us | 70.0us | 68.6us | +1.0% | -2.0% |
| BM_BitcodeReader_Scale/10000 | 70.5ms | 21.3ms | 21.3ms | -69.8% | -0.0% |

    [23 lines not shown]
DeltaFile
+74-11clang-tools-extra/clang-doc/BitcodeReader.cpp
+30-4clang-tools-extra/clang-doc/Serialize.cpp
+15-4clang-tools-extra/clang-doc/Representation.h
+0-15clang-tools-extra/clang-doc/YAMLGenerator.cpp
+9-2clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+9-2clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
+137-383 files not shown
+153-419 files

LLVM/project 759338fclang-tools-extra/clang-doc BitcodeReader.cpp JSONGenerator.cpp

[clang-doc] Refactor FriendInfo parameters to use ArrayRef

This also adapts readBlock for the new layouts.
DeltaFile
+45-7clang-tools-extra/clang-doc/BitcodeReader.cpp
+2-2clang-tools-extra/clang-doc/JSONGenerator.cpp
+1-2clang-tools-extra/clang-doc/Serialize.cpp
+1-2clang-tools-extra/clang-doc/BitcodeWriter.cpp
+1-1clang-tools-extra/clang-doc/Representation.h
+50-145 files

LLVM/project 1972cf6clang/include/clang/AST OpenMPClause.h, clang/lib/Sema SemaOpenMP.cpp

[Clang][OpenMP] Implement Loop splitting `#pragma omp split` directive  (#183261)

OpenMP 6.0 Loop-splitting directive `#pragma omp split` construct with `counts`
clause
DeltaFile
+1,986-0clang/test/OpenMP/split_codegen.cpp
+270-0clang/lib/Sema/SemaOpenMP.cpp
+139-0openmp/runtime/test/transform/split/iterfor.cpp
+123-0clang/test/OpenMP/split_counts_verify.c
+101-0clang/include/clang/AST/OpenMPClause.h
+99-0clang/test/OpenMP/split_messages.cpp
+2,718-074 files not shown
+4,200-1180 files

FreeBSD/ports 987c710misc/ollama distinfo Makefile, misc/ollama/files update-port.sh

misc/ollama: update 0.19.0 → 0.20.0
DeltaFile
+11-11misc/ollama/distinfo
+2-2misc/ollama/files/update-port.sh
+1-2misc/ollama/Makefile
+14-153 files

LLVM/project 2f7bd4flld/ELF Relocations.cpp SyntheticSections.cpp, lld/ELF/Arch PPC64.cpp

[ELF] Enable parallel relocation scanning for -z nocombreloc and PPC64 (#190309)

The `bool serial` condition in scanRelocations disabled parallelism for
three cases: -z nocombreloc, MIPS, and PPC64. Resolve two cases:

- nocombreloc: .rela.dyn is now always created with combreloc=true so
  non-relative relocations are sorted deterministically. Since
  #187964 already separates relative relocations unconditionally,
  the only remaining effect of -z nocombreloc is suppressing
  DT_RELACOUNT (gated on ctx.arg.zCombreloc in DynamicSection).

- PPC64: After #181496 moved scanning into scanSectionImpl, the
  sole thread-unsafe access is ctx.ppc64noTocRelax (DenseSet::insert).
  Protect it with ctx.relocMutex, which is already used for rare
  operations during parallel scanning.

MIPS retains serial scanning due to `MipsGotSection` mutations.
DeltaFile
+4-4lld/test/ELF/combreloc.s
+3-5lld/ELF/Relocations.cpp
+3-1lld/ELF/Arch/PPC64.cpp
+1-1lld/ELF/SyntheticSections.cpp
+11-114 files

OpenBSD/ports 8Rj0uMsgames/vkquake Makefile distinfo, games/vkquake/patches patch-Quake_common_make

   update to vkquake 1.34.1
VersionDeltaFile
1.21+5-2games/vkquake/Makefile
1.7+4-2games/vkquake/patches/patch-Quake_common_make
1.18+2-2games/vkquake/distinfo
+11-63 files

FreeBSD/ports 6d9f95fsecurity Makefile, security/py-policyuniverse Makefile pkg-descr

security/py-policyuniverse: New port: Parse and Process AWS IAM Policies, Statements, ARNs, and wildcards
DeltaFile
+21-0security/py-policyuniverse/Makefile
+3-0security/py-policyuniverse/pkg-descr
+3-0security/py-policyuniverse/distinfo
+1-0security/Makefile
+28-04 files

FreeBSD/ports 98f2446security Makefile, security/py-shodan Makefile pkg-descr

security/py-shodan: New port: Python library and command-line utility for Shodan
DeltaFile
+27-0security/py-shodan/Makefile
+4-0security/py-shodan/pkg-descr
+3-0security/py-shodan/distinfo
+1-0security/Makefile
+35-04 files

Linux/linux d8a9a4bfs/smb/client fs_context.c

Merge tag 'v7.0-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client fix from Steve French:

 - Fix potential out of bounds read in mount

* tag 'v7.0-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6:
  fs/smb/client: fix out-of-bounds read in cifs_sanitize_prepath
DeltaFile
+4-0fs/smb/client/fs_context.c
+4-01 files

FreeBSD/ports ce5f15ewww Makefile, www/py-cherrypy-cors Makefile distinfo

www/py-cherrypy-cors: New port: CORS handling as a cherrypy tool
DeltaFile
+23-0www/py-cherrypy-cors/Makefile
+3-0www/py-cherrypy-cors/distinfo
+3-0www/py-cherrypy-cors/pkg-descr
+1-0www/Makefile
+30-04 files

FreeBSD/ports 566b0dcwww Makefile, www/py-dash-bootstrap-components Makefile pkg-descr

www/py-dash-bootstrap-components: New port: Bootstrap themed components for use in Plotly Dash
DeltaFile
+35-0www/py-dash-bootstrap-components/Makefile
+4-0www/py-dash-bootstrap-components/pkg-descr
+3-0www/py-dash-bootstrap-components/distinfo
+1-0www/Makefile
+43-04 files

FreeBSD/ports 6f84c54www Makefile, www/py-google-cloud-container Makefile distinfo

www/py-google-cloud-container: New port: Google Cloud Container API client library
DeltaFile
+27-0www/py-google-cloud-container/Makefile
+3-0www/py-google-cloud-container/distinfo
+3-0www/py-google-cloud-container/pkg-descr
+1-0www/Makefile
+34-04 files

NetBSD/pkgsrc e5Nr9wEdoc CHANGES-2026

   tex package updates
VersionDeltaFile
1.2079+32-1doc/CHANGES-2026
+32-11 files

NetBSD/pkgsrc gnmzpFntextproc/xindy distinfo Makefile

   xindy: update to 2.5.1nb13

   part of TeXlive 2026
VersionDeltaFile
1.11+4-4textproc/xindy/distinfo
1.18+2-2textproc/xindy/Makefile
+6-62 files

NetBSD/pkgsrc g5zt1EZtextproc/upmendex distinfo Makefile

   upmendex: update to 1.22

   part of TeXlive 2026

   * Experimental support for Brahmic scripts (Bengali, Gurmukhi, Gujarati,
     Kannada, Lao, Malayalam, Oriya, Sinhala, Tamil, Telugu).
VersionDeltaFile
1.9+4-4textproc/upmendex/distinfo
1.18+2-3textproc/upmendex/Makefile
+6-72 files

NetBSD/pkgsrc MBrwWYptextproc/mendexk distinfo Makefile

   mendexk: update to 3.10

   part of TeXlive 2026
VersionDeltaFile
1.20+4-4textproc/mendexk/distinfo
1.20+2-2textproc/mendexk/Makefile
+6-62 files

NetBSD/pkgsrc AIPo3xutextproc/makeindexk distinfo Makefile

   makeindexk: update to 2.18

   part of TeXlive 2026
VersionDeltaFile
1.22+4-4textproc/makeindexk/distinfo
1.23+2-3textproc/makeindexk/Makefile
+6-72 files

NetBSD/pkgsrc WhUuwwzprint/xpdfopen distinfo Makefile

   xpdfopen: updaet to 0.86nb12

   part of TeXlive 2026
VersionDeltaFile
1.18+4-4print/xpdfopen/distinfo
1.19+2-2print/xpdfopen/Makefile
+6-62 files

NetBSD/pkgsrc 9JJduFPprint/xetex distinfo Makefile, print/xetex/patches patch-texk_web2c_luatexdir_luaffi_test__includes.sh

   xetex to 0.999998

   part of TeXlive 2026

   * When the “Infinite glue shrinkage” error is ignored (see the 2025 release
     notes), the word “error” is no longer included in the output, and the message
     is written only to the log file. This was a source of minor confusion and false
     positives.
VersionDeltaFile
1.1+15-0print/xetex/patches/patch-texk_web2c_luatexdir_luaffi_test__includes.sh
1.33+5-4print/xetex/distinfo
1.135+2-3print/xetex/Makefile
+22-73 files

NetBSD/pkgsrc rbv3lcLprint/xdvik distinfo Makefile

   xdvik: update to 22.87.06nb6

   part of TeXlive 2026
VersionDeltaFile
1.25+4-4print/xdvik/distinfo
1.41+2-2print/xdvik/Makefile
+6-62 files