HardenedBSD/ports eeb0530lang/rust-nightly distinfo, lang/rust-nightly/files patch-vendor_git2-0.20.2_src_lib.rs patch-vendor_cc.rs

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+559-559net/rustconn/distinfo
+0-162security/cryptopp-modern/files/patch-pull76
+50-0lang/rust-nightly/files/patch-vendor_openssl-probe_src_lib.rs
+0-36lang/rust-nightly/files/patch-vendor_cc.rs
+0-18lang/rust-nightly/files/patch-vendor_git2-0.20.2_src_lib.rs
+9-9lang/rust-nightly/distinfo
+618-78426 files not shown
+695-87432 files

LLVM/project 2ef8f52clang/lib/ScalableStaticAnalysis/SourceTransformation CMakeLists.txt, clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

[SSAF][clang-reforge] Retrofit expressions after CppBoundedBuffers decl rewrites

PR #210457 introduces declaration rewriting.  When CppBoundedBuffers
rewrites a declaration or return type to a bounded_ptr/bounded_array,
some of the existing uses of that entity needs retrofit.

This commit creates expression rewrites for the following patterns:

- Append '.data()' to call arguments when necessary parameter is not
  transformed but argument is transformed.
- Append '.as_bounded<T>()' to call arguments when both parameter and
  argument are transformed but element types are not identical.
- Rewrite '&e[i]' to '(e + i)' and '&*e'/'&(*e)' to 'e', if 'e' is
  transformed.
- Rewrite '(T*)e', 'static_cast<T*>(e)', and 'reinterpret_cast<T*>(e)'
  to 'e.as_bounded<T>()', if 'e' is transformed.

The 3rd step of
rdar://187125348
DeltaFile
+417-7clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+246-0clang/unittests/ScalableStaticAnalysis/SourceTransformation/CppBoundedBuffersTest.cpp
+9-0clang/lib/ScalableStaticAnalysis/SourceTransformation/CMakeLists.txt
+7-0llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysis/SourceTransformation/BUILD.gn
+679-74 files

LLVM/project f471750clang/docs/CIR CleanupAndEHDesign.md

[CIR] Document dynamic exception specification design (#222451)

This change adds documentation for the CIR handling of dynamic exception
specification handling in pre-C++17 code. This is not yet implemented.
The implementation will follow in a series of changes based on this
design.

This documentation was generated by Claude Opus 5, based on an
interactive planning session in which I worked out the details of how I
want to implement this feature. I have carefully read the entire
document to verify that it correctly matches my intended implementation.
DeltaFile
+451-0clang/docs/CIR/CleanupAndEHDesign.md
+451-01 files

LLVM/project 23cd975libc/test/UnitTest BazelFilePath.cpp, utils/bazel/llvm-project-overlay/libc/test libc_test_rules.bzl

[libc][bazel] Use LLVM-libc startup objects in full-build tests
DeltaFile
+91-59utils/bazel/llvm-project-overlay/libc/test/include/BUILD.bazel
+58-20utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+48-3utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
+37-4utils/bazel/llvm-project-overlay/libc/test/src/stdio/BUILD.bazel
+25-0utils/bazel/llvm-project-overlay/libc/test/IntegrationTest/BUILD.bazel
+13-3libc/test/UnitTest/BazelFilePath.cpp
+272-895 files not shown
+291-9611 files

LLVM/project 2c30f74llvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/lib/Transforms/Utils RelLookupTableConverter.cpp

[llvm] Avoid PREL32 overflow to .data.rel.ro on AArch64 and re-enable (#222809)

Under the [AArch64 Small Code
Model](https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst#code-models),
the text segment (containing .text and .rodata) is limited to 2GB, but
the combined span of text and data segments can be up to 4GB.

When a relative lookup table is emitted in .rodata but references target
operands that require dynamic relocations (placed in .data.rel.ro in the
data segment), the distance between .rodata and .data.rel.ro can legally
exceed the 2GB range of signed 32-bit R_AARCH64_PREL32 relocations.

In this PR:
1. Ensure that on AArch64, lookup table operands do not need dynamic
relocations. If the lookup table were in `.rodata` (text segment), then
any of the target components would need to be in the data segment, so
the dynamic reloc check would suffice.
2. Re-enable RelLookupTableConverter for AArch64 (while keeping Darwin
disabled as before).

    [10 lines not shown]
DeltaFile
+435-0llvm/test/Transforms/RelLookupTableConverter/relative_lookup_table.ll
+0-434llvm/test/Transforms/RelLookupTableConverter/X86/relative_lookup_table.ll
+101-0llvm/test/Transforms/RelLookupTableConverter/AArch64/dynamic_relocs.ll
+9-0llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp
+3-4llvm/include/llvm/CodeGen/BasicTTIImpl.h
+1-1llvm/test/Transforms/RelLookupTableConverter/AArch64/no_relative_lookup_table.ll
+549-4396 files

LLVM/project 4e86502llvm/lib/Target/AArch64 AArch64ConditionalCompares.cpp, llvm/test/CodeGen/AArch64 cmpbr-ccmp.ll cmpbr-ccmp.mir

[AArch64] Form CCMP for CBB and CBH (#221113)

AArch64ConditionalCompares forms CMP/CCMP chains to transform patterns
such as

                 Head                        Head
                 / |                         CmpBB
                /  |                         / |
               |  CmpBB        =>           /  |
               |  / |                    Tail  |
               | /  |                      |   |
              Tail  |                      |   |
                |   |                      |   |
               ... ...                    ... ...

where Head is terminated by a conditional branch and CmpBB contains
a cmp + conditional branch.

We usually try to split any fused conditional branches to be able to

    [7 lines not shown]
DeltaFile
+406-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.mir
+232-0llvm/test/CodeGen/AArch64/cmpbr-ccmp.ll
+41-2llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+679-23 files

LLVM/project e4365f9llvm/test/Transforms/LoopVectorize/VPlan compress-idioms.ll

Remove AArch64 flags
DeltaFile
+1-1llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+1-11 files

LLVM/project 5b26451llvm/lib/Transforms/Utils LoopUtils.cpp

Fixups
DeltaFile
+1-1llvm/lib/Transforms/Utils/LoopUtils.cpp
+1-11 files

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

Add out-of-loop use check
DeltaFile
+32-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+10-2llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+42-22 files

LLVM/project bceac9cllvm/lib/Transforms/Utils LoopUtils.cpp, llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanTransforms.cpp

Tests, fixes, and design rework
DeltaFile
+603-175llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+174-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+87-49llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+58-74llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+98-0llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+66-0llvm/lib/Transforms/Utils/LoopUtils.cpp
+1,086-29812 files not shown
+1,212-38518 files

LLVM/project 359d47allvm/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
+112-15llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+60-4llvm/lib/Transforms/Vectorize/VPlan.h
+49-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+934-1915 files not shown
+1,117-2721 files

LLVM/project 4d8f369llvm/lib/Transforms/Utils LoopUtils.cpp, llvm/test/Transforms/LoopVectorize compress-idioms.ll compress-store-vec-epilogue.ll

Fixups
DeltaFile
+37-40llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+3-3llvm/lib/Transforms/Utils/LoopUtils.cpp
+0-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+40-453 files

LLVM/project 0ca535fllvm/include/llvm/Transforms/Utils LoopUtils.h, llvm/lib/Transforms/Utils LoopUtils.cpp

Fixups
DeltaFile
+128-181llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+40-9llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+16-20llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+12-16llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+9-1llvm/lib/Transforms/Utils/LoopUtils.cpp
+4-3llvm/include/llvm/Transforms/Utils/LoopUtils.h
+209-2301 files not shown
+212-2337 files

LLVM/project af21c78llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll

Add test
DeltaFile
+32-1llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+32-11 files

LLVM/project a6dca9allvm/lib/Transforms/Vectorize VPRecipeBuilder.h

Add comment
DeltaFile
+3-0llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+3-01 files

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

[IVDescriptors] Implement MonotonicDescriptor (#214490)

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:
```

    [23 lines not shown]
DeltaFile
+247-0llvm/unittests/Analysis/IVDescriptorsTest.cpp
+91-0llvm/lib/Analysis/IVDescriptors.cpp
+62-0llvm/include/llvm/Analysis/IVDescriptors.h
+400-03 files

LLVM/project 7727fb8llvm/test/CodeGen/AMDGPU uint_to_fp.f64.ll sint_to_fp.f64.ll

[NFC][AMDGPU] Add tests for converting an i64 that fits in 32 bits (#223030)

It is converted with the full i64 expansion. The shifts by 31 leave a
value that does not fit.

The idea is to optimize conversion of an i64 that fits in 32 bits from
its low half.
DeltaFile
+350-0llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll
+292-0llvm/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
+58-0llvm/test/CodeGen/AMDGPU/sint_to_fp.f64.ll
+54-0llvm/test/CodeGen/AMDGPU/uint_to_fp.f64.ll
+754-04 files

LLVM/project 8016368libc/test/UnitTest BazelFilePath.cpp

[test][bazel][libc] Use hermetic getenv in BazelFilePath.cpp

This PR uses the pattern from `ExecuteFunctionUnix.cpp` to conditionally use LLVM-libc's entrypoints when `LIBC_FULL_BUILD` is enabled: https://github.com/llvm/llvm-project/blob/5618cfdae27157a48ea670e6d817310404afb746/libc/test/UnitTest/ExecuteFunctionUnix.cpp#L31
DeltaFile
+13-3libc/test/UnitTest/BazelFilePath.cpp
+13-31 files

LLVM/project 1d1b0cautils/bazel/llvm-project-overlay/libc/test libc_test_rules.bzl, utils/bazel/llvm-project-overlay/libc/test/IntegrationTest BUILD.bazel

[libc][bazel] Use LLVM-libc startup objects in full-build tests
DeltaFile
+91-59utils/bazel/llvm-project-overlay/libc/test/include/BUILD.bazel
+58-20utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+48-3utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
+37-4utils/bazel/llvm-project-overlay/libc/test/src/stdio/BUILD.bazel
+25-0utils/bazel/llvm-project-overlay/libc/test/IntegrationTest/BUILD.bazel
+6-2utils/bazel/llvm-project-overlay/libc/utils/MPCWrapper/BUILD.bazel
+265-884 files not shown
+278-9310 files

FreeBSD/ports 2733d67deskutils/notes pkg-plist distinfo, deskutils/notes/files patch-CMakeLists.txt

deskutils/notes: update the port to the latest version 2.3.1

- Point WWW to the open-source version, old page is now about
  "Daino Notes" closed-source derivative by the same author
- Add two missing run-time dependencies, amend USE_XORG list
- Low-resolution icons were removed upstream for aesthetic
  reasons, but why SVG icon had also been removed is unclear

Reported by:    portscout
DeltaFile
+0-12deskutils/notes/files/patch-CMakeLists.txt
+6-5deskutils/notes/Makefile
+5-5deskutils/notes/distinfo
+0-7deskutils/notes/pkg-plist
+11-294 files

HardenedBSD/ports 2733d67deskutils/notes pkg-plist distinfo, deskutils/notes/files patch-CMakeLists.txt

deskutils/notes: update the port to the latest version 2.3.1

- Point WWW to the open-source version, old page is now about
  "Daino Notes" closed-source derivative by the same author
- Add two missing run-time dependencies, amend USE_XORG list
- Low-resolution icons were removed upstream for aesthetic
  reasons, but why SVG icon had also been removed is unclear

Reported by:    portscout
DeltaFile
+0-12deskutils/notes/files/patch-CMakeLists.txt
+6-5deskutils/notes/Makefile
+5-5deskutils/notes/distinfo
+0-7deskutils/notes/pkg-plist
+11-294 files

LLVM/project 5618cfdllvm/lib/Target/RISCV RISCVSubtarget.h RISCVISelLowering.cpp

[RISCV] Remove hasCZEROLike() in favor of directly checking for Zicond Extension (#221053)

Only Zicond implements a CZero-Like instruction now that Ventana
Conditional Operations have been removed.
DeltaFile
+7-7llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+0-2llvm/lib/Target/RISCV/RISCVSubtarget.h
+7-92 files

LLVM/project 675cfb9llvm/lib/Target/NVPTX NVPTXISelDAGToDAG.cpp, llvm/test/CodeGen/NVPTX atomics-system-scope-sm50.err.ll cmpxchg.ll

[NVPTX] Error on atomics with system scope pre-sm60 (#222458)

Pre-SM60, atomics could only have device scope.
`NVPTXDAGToDAGISel::getAtomicScope` can conservatively emit device scope
for all scopes that are not system scope. For system scope, we need to
error out.

This resolves a TODO in llvm/test/CodeGen/NVPTX/cmpxchg.ll. Update that
and llvm/test/CodeGen/NVPTX/cmpxchg.ll to use SM60 now, demonstrating
correct lowering for system scope.
DeltaFile
+541-522llvm/test/CodeGen/NVPTX/cmpxchg.ll
+63-0llvm/test/CodeGen/NVPTX/atomics-system-scope-sm50.err.ll
+9-2llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+613-5243 files

LLVM/project 4e3b379mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp, mlir/lib/Dialect/Linalg/Transforms Vectorization.cpp Loops.cpp

[MLIR] Fix -Wunused-template (#221480) (#223094)

This warning was enabled by default for clang 23 (although reverted in
23.1.1). Given someone might enable it in the future and the cleanup
seemed nice, we should just do it.

This was done primarily by removing static from templates in headers and
then deleting any unused templates in translation units.

Previously attempted to land this in #221480, but accidentally merged
into a user branch rather than main.
DeltaFile
+0-26mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+0-22mlir/lib/Dialect/SCF/IR/SCF.cpp
+0-18mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
+0-16mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
+0-15mlir/lib/Tools/mlir-pdll-lsp-server/Protocol.cpp
+0-15mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+0-11215 files not shown
+6-21921 files

FreeBSD/src d9c798bsys/powerpc/booke pmap_64.c

powerpc/booke64: Remove unused pmap global
DeltaFile
+0-1sys/powerpc/booke/pmap_64.c
+0-11 files

OpenZFS/src 02b5baftests/test-runner/bin zts-report.py.in

ZTS: Add import_relax_metadata_damaged exception

The newly added import_relax_metadata_damaged test case is flaky.
Add it to the exceptions script until the underlying issue is resolved.

Reviewed-by: George Melikov <mail at gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Issue #19077
Closes #19104
DeltaFile
+1-0tests/test-runner/bin/zts-report.py.in
+1-01 files

LLVM/project 7c0c5e3llvm/docs HowToAddABuilder.md AMDGPUInstructionSyntax.md

[LLVM][docs] Finish MyST migration for remaining docs (batch 10)
DeltaFile
+339-324llvm/docs/AMDGPUModifierSyntax.md
+285-224llvm/docs/AMDGPUOperandSyntax.md
+225-231llvm/docs/AMDGPUUsage.md
+62-59llvm/docs/ConvergentOperations.md
+30-63llvm/docs/AMDGPUInstructionSyntax.md
+43-44llvm/docs/HowToAddABuilder.md
+984-94518 files not shown
+1,239-1,20324 files

LLVM/project 9239024lldb/include/lldb/Host SafeMachO.h

[lldb] Attempt to unbreak building lldb with the 27 SDK (#223090)

See this report:
https://github.com/llvm/llvm-project/pull/222721#issuecomment-5636252813
DeltaFile
+1-0lldb/include/lldb/Host/SafeMachO.h
+1-01 files

LLVM/project 76e9e99llvm/docs SecurityTransparencyReports.md VectorizationPlan.md, llvm/docs/Proposals TestSuite.md VariableNames.md

[LLVM][docs] Finish MyST migration for remaining docs (batch 11)
DeltaFile
+106-104llvm/docs/Proposals/VariableNames.md
+108-85llvm/docs/Proposals/TestSuite.md
+92-93llvm/docs/Projects.md
+62-62llvm/docs/TableGen/ProgRef.md
+53-51llvm/docs/VectorizationPlan.md
+54-44llvm/docs/SecurityTransparencyReports.md
+475-43920 files not shown
+661-63426 files

LLVM/project 329f454llvm/lib/CodeGen SafeStack.cpp, llvm/test/Transforms/SafeStack/X86 pointer-address-domtree.ll

[CodeGen][SafeStack] Successful InlineFunction should force a recalculation of potentially stale DominatorTree (#222820)

In commit 51a25846c198, Safe Stack began preserving the `DominatorTree`
by the end of the pass' run. Updates to the `DominatorTree` were then
made lazily via inclusion of `DomTreeUpdater` and its use with
`SplitBlockAndInsertIfThen`. Preservation was maintained when updated to
the new pass manager in 3bd517205799. However, there was an overlooked
case where the `DominatorTree` would remain stale by the end of the Safe
Stack pass if the actions under `TryInlinePointerAddress` completed
successfully and modified the caller's CFG.

The conditions for a stale `DominatorTree` to exist are roughly:
1. Safe Stack obtains the Unsafe Stack pointer location as a `CallInst`
(i.e. one way is `-safestack-use-pointer-address`)
2. `__safestack_pointer_address` is defined and inlined successfully.
3. The inlining changes the CFG such that a recalculated `DominatorTree`
would differ.
4. `DominatorTree` remains unchanged since it is preserved and currently
not recalculated.

    [53 lines not shown]
DeltaFile
+33-0llvm/test/Transforms/SafeStack/X86/pointer-address-domtree.ll
+5-1llvm/lib/CodeGen/SafeStack.cpp
+38-12 files