LLVM/project b6c2c76clang/docs conf.py, llvm/docs conf.py

[docs] Enable absolute self-documentation link checks

Configure the LLVM and Clang documentation URL prefixes so their Sphinx
builds reject new absolute links to documents in the same project.

Part of #214861
DeltaFile
+11-1llvm/docs/conf.py
+3-0clang/docs/conf.py
+14-12 files

LLVM/project 96f7503utils/docs __main__.py, utils/docs/llvm_sphinx/ext absolute_links.py

[docs] Check for absolute self-documentation links

Add an opt-in llvm_sphinx check that diagnoses absolute links to
documents in the current Sphinx project. Operate on the parsed doctree
so the check works for both reStructuredText and MyST without flagging
examples in literal blocks.

For example, restoring one absolute link in the LLVM documentation makes
a warnings-as-errors build report:

    llvm/docs/ReleaseNotes.md:321: WARNING: absolute URL points to document
    'index' in this Sphinx project; use an internal 'doc' or 'ref' role
    instead: https://llvm.org/docs/ [llvm_sphinx.absolute-doc-link]

Part of #214861
DeltaFile
+152-0utils/docs/llvm_sphinx/ext/absolute_links.py
+22-4utils/docs/__main__.py
+12-0utils/docs/llvm_sphinx/ext/absolute_links_test/rest.rst
+11-0utils/docs/llvm_sphinx/ext/absolute_links_test/conf.py
+10-0utils/docs/llvm_sphinx/ext/absolute_links_test/markdown.md
+8-0utils/docs/llvm_sphinx/ext/absolute_links_test/index.rst
+215-42 files not shown
+222-68 files

LLVM/project e45aca6llvm/docs CodingStandards.md GettingInvolved.md, llvm/docs/AMDGPU DeveloperGuideline.rst

[docs] Replace llvm.org/docs links with project links

Use Sphinx document and reference roles or project-relative links for
links within the LLVM documentation. This lets Sphinx validate the
targets and keeps local documentation builds and archived release
documentation self-contained.

Part of #214861
DeltaFile
+8-8llvm/docs/AMDGPU/DeveloperGuideline.rst
+7-7llvm/docs/SecurityTransparencyReports.rst
+6-6llvm/docs/MergeFunctions.md
+5-6llvm/docs/CommandGuide/llvm-remarkutil.md
+5-3llvm/docs/GettingInvolved.md
+5-1llvm/docs/CodingStandards.md
+36-3139 files not shown
+94-8545 files

LLVM/project 15b6b01clang/docs AllocToken.md SafeBuffers.md, clang/docs/analyzer checkers.md

[docs] Replace clang.llvm.org/docs links with Sphinx links

Use Sphinx document and option roles or project-relative links for links
within the Clang documentation. Repair stale generated-document
fragments found while validating the replacements. This ensures that
standalone documentation builds are self-contained, although
cross-project links (Clang->LLVM) typically go via absolute llvm.org
hrefs.

Part of #214861

Assisted-by: Codex
DeltaFile
+6-6clang/docs/LifetimeSafety.md
+5-5clang/docs/LanguageExtensions.md
+4-4clang/docs/analyzer/checkers.md
+3-4clang/docs/SafeBuffers.md
+3-3clang/docs/analyzer/user-docs/Annotations.md
+2-2clang/docs/AllocToken.md
+23-2410 files not shown
+33-3716 files

FreeBSD/ports 6700408databases/openldap27-server Makefile distinfo

databases/openldap27-server: update to 2.7.1
DeltaFile
+3-3databases/openldap27-server/distinfo
+1-1databases/openldap27-server/Makefile
+4-42 files

FreeBSD/ports cff5017databases/lmdb Makefile distinfo

databases/lmdb: update to 1.0.2
DeltaFile
+3-3databases/lmdb/distinfo
+1-1databases/lmdb/Makefile
+4-42 files

LLVM/project 90cebefclang/lib/Driver/ToolChains Cuda.cpp, llvm/lib/Transforms/Scalar MemCpyOptimizer.cpp

[MemCpyOpt] Remove libcall availability checks for memory intrinsics (#198558)

Fixes #197683

- Delete the enable-memcpyopt-without-libcalls flag from MemCpyOptimizer
- Remove libcall availability checks in processStoreOfLoad() and
processStore()
- Remove the flag from CUDA/OpenMP toolchain in Clang
- Update no-libcalls.ll test to expect optimizations on all targets


cc @arsenm

Signed-off-by: addmisol <addmisol9 at gmail.com>
DeltaFile
+16-30llvm/test/Transforms/MemCpyOpt/no-libcalls.ll
+1-18llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+1-3clang/lib/Driver/ToolChains/Cuda.cpp
+18-513 files

LLVM/project 4d5358bllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPShuffleAnalysis.h

[SLP][modularisation][NFC] Move BaseShuffleAnalysis to SLPShuffleAnalysis.h (#222236)

Move the BoUpSLP-independent shuffle-analysis base class out of
SLPVectorizer.cpp into a new header-only
SLPVectorizer/SLPShuffleAnalysis.h. BoUpSLP::ShuffleCostEstimator and
BoUpSLP::ShuffleInstructionBuilder keep deriving from it.

createShuffle read the file-local SLPReVec cl::opt in an assert; the
option stays static in SLPVectorizer.cpp and the moved template takes
its value as an explicit bool parameter. Behavior is unchanged.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922

Assisted by AI.
DeltaFile
+393-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPShuffleAnalysis.h
+3-360llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+396-3602 files

LLVM/project 34a9870lldb/bindings/interface SBCompileUnitDocstrings.i, lldb/include/lldb/API SBCompileUnit.h

[lldb] Add SBCompileUnit::GetIsOptimized (#222403)

Expose Module::GetIsOptimized through the SB API so clients can tell
whether a compile unit was built with optimization. This change is
motivated by lldb-dap, where I want to extend the protocol::CompileUnit
with this information.

The new tests build the same source with and without -O1, so the test
case can no longer share a build with the others.
DeltaFile
+19-0lldb/test/API/python_api/compile_unit/TestCompileUnitAPI.py
+8-0lldb/source/API/SBCompileUnit.cpp
+5-0lldb/bindings/interface/SBCompileUnitDocstrings.i
+4-0lldb/include/lldb/API/SBCompileUnit.h
+36-04 files

LLVM/project 4acc5f1llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPMemoryUtils.h SLPMemoryUtils.cpp

[SLP][modularisation][NFC] Move clusterSortPtrAccesses to SLPMemoryUtils (#222235)

Move the BoUpSLP-independent pointer-clustering sort out of
SLPVectorizer.cpp into SLPVectorizer/SLPMemoryUtils.{h,cpp}.

clusterSortPtrAccesses reads the file-local RecursionMaxDepth cl::opt
via getUnderlyingObject; the option stays static in SLPVectorizer.cpp
and the moved helper takes its value as an explicit unsigned parameter
(also captured by the local comparison lambda). Behavior is unchanged.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922

Assisted by AI
DeltaFile
+2-106llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+108-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPMemoryUtils.cpp
+9-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPMemoryUtils.h
+119-1063 files

LLVM/project 6594e82llvm/lib/Target/AMDGPU GCNDPPCombine.cpp, llvm/test/CodeGen/AMDGPU dpp_combine_gfx11.mir

[AMDGPU] Reject DPP combine when old is narrower than dst (#217894)

Old is copied from the mov dst class, but the combined dst can be wider
(e.g. V_CVT_F64_I32), making old illegal for it
DeltaFile
+18-0llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir
+10-1llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
+28-12 files

FreeNAS/freenas 707c059src/middlewared/middlewared/api/v26_0_0 crypto_cert_profiles.py, src/middlewared/middlewared/api/v27_0_0 crypto_cert_profiles.py

Address reviews
DeltaFile
+0-3src/middlewared/middlewared/api/v27_0_0/crypto_cert_profiles.py
+0-3src/middlewared/middlewared/api/v26_0_0/crypto_cert_profiles.py
+0-62 files

FreeNAS/freenas e8f1c1csrc/middlewared/middlewared/api/v26_0_0 crypto_cert_profiles.py, src/middlewared/middlewared/api/v27_0_0 crypto_cert_profiles.py

Split CSR profiles by certificate role

This commit adds changes to replace the two HTTPS CSR profiles with four role specific ones covering TLS server and TLS client use, in both RSA and EC. Both old profiles asked for SERVER_AUTH and CLIENT_AUTH together, which Google Trust Services now rejects outright with badCSR. Once you can no longer name both purposes in one request, a single shape stops serving both roles, since a certificate is only usable for the purposes its extended key usage names.

The server profiles now request SERVER_AUTH alone, which is what Google and the Chrome root programme want by 2027 and what relying parties like Apple expect to find on a TLS server certificate, and the client profiles request CLIENT_AUTH so mutual TLS against syslog, LDAP and KMIP has something usable. This also drops the RSA keyAgreement bit the baseline requirements forbid, makes the EKU non critical, and removes the dead lifetime key that certificate.create would have rejected. The catalogue is declared in v26 and v27 both, since v26 is the current version on the stable branch, so backporting means keeping the v26 hunk and omitting the v27 one; to_previous on v26 is what keeps older API clients on the profiles they already know.
DeltaFile
+144-55src/middlewared/middlewared/api/v26_0_0/crypto_cert_profiles.py
+128-55src/middlewared/middlewared/api/v27_0_0/crypto_cert_profiles.py
+54-0tests/api2/test_certificate_create_types.py
+9-4src/middlewared/middlewared/plugins/webui/crypto.py
+1-0tests/api2/test_legacy_api.py
+336-1145 files

OpenBSD/src eEGEB9elib/libc/dlfcn init.c

   Learn the execpath executable from either of AUX_execpath or
   AUX_openbsd_execpath (the first will be deleted in about a week
   when kernels have crossed over)
   ok kettenis
VersionDeltaFile
1.28+3-2lib/libc/dlfcn/init.c
+3-21 files

LLVM/project feabb30llvm/lib/CodeGen MachineScheduler.cpp, llvm/test/CodeGen/SystemZ postra-sched-filter.mir

[MISched] Apply debug filters before starting a block (#222270)

Apply the `misched-only-func` and `misched-only-block` filters before
calling `startBlock`. This avoids entering a target scheduling strategy
for a filtered block without a matching `finishBlock`/`leaveMBB` call.

Add a SystemZ post-RA scheduler regression that checks a filtered block
does not contribute hazard-recognizer state.

Split from #221984 in response to review.
DeltaFile
+21-0llvm/test/CodeGen/SystemZ/postra-sched-filter.mir
+2-3llvm/lib/CodeGen/MachineScheduler.cpp
+23-32 files

FreeNAS/freenas d122ebctests/api2 test_s3_config.py

Address reviews
DeltaFile
+23-15tests/api2/test_s3_config.py
+23-151 files

LLVM/project cdf59b3flang/test/Lower/OpenMP threadset.f90, flang/test/Semantics/OpenMP threadset-clause-v60.f90

[Flang][OpenMP] Add lowering and translation for the threadset clause (#215513)

Adds Flang lowering, and LLVM IR translation for the OpenMP 6.0 `threadset` clause (spec 14.8) on `task` and `taskloop`.

- Add a `ThreadsetPolicy` enum (`omp_pool`/`omp_team`) and clause on `omp.task` and `omp.taskloop.context`, lowered from Flang.
- Translate `threadset(omp_pool)` to the free-agent task flag (`0x80`); `omp_team` leaves it unset, matching clang.
- Add semantics, lowering, and translation tests.

Related: https://github.com/llvm/llvm-project/pull/135807,
https://github.com/llvm/llvm-project/pull/144409,
https://github.com/llvm/llvm-project/pull/169856
DeltaFile
+50-0mlir/test/Target/LLVMIR/openmp-taskloop-threadset.mlir
+41-0mlir/test/Dialect/OpenMP/ops.mlir
+38-0flang/test/Semantics/OpenMP/threadset-clause-v60.f90
+37-0flang/test/Lower/OpenMP/threadset.f90
+16-14mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+27-0mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
+209-1412 files not shown
+303-3518 files

LLVM/project 069ef0eclang/docs ReleaseNotes.md

Add release note for #184718.
DeltaFile
+1-0clang/docs/ReleaseNotes.md
+1-01 files

OpenBSD/src D3SLF6Isys/kern exec_elf.c

   Export the new AUX_openbsd_execpath 4001 as well as the (soon to be removed)
   AUX_execpath.
   ok kettenis
VersionDeltaFile
1.204+6-2sys/kern/exec_elf.c
+6-21 files

OpenBSD/src a1REAEWsys/sys exec_elf.h

   Using AUX_execpath 15 collides with Linux use of the portable space,
   so let's use AUX_openbsd_execpath 4001 instead so that tools can tell
   the difference.
   Expand ELF_AUX_ENTRIES to 13 temporarily, and keep providing 15 for
   a while until people's kernels are updated through this phase.
   ok kettenis
VersionDeltaFile
1.110+4-3sys/sys/exec_elf.h
+4-31 files

LLVM/project 7fe3637llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV and-negpow2-cmp.ll

[RISCV] Fix infinite DAGCombine loop with SETCC and SIGN_EXTEND_INREG (#221593)

We generalized (X & -(1 << C1) & 0xffffffff) == C2 << C1 using `sraiw`.
The combine generates a `SIGN_EXTEND_INREG` when simplifying.

However, when C1 is 0 and the sign bit (bit 31) of X is already known to
be zero, `DAGCombiner` sees that `SIGN_EXTEND_INREG` is semantically
equivalent to `AND X, 0xFFFFFFFF` (zext). Because `DAGCombiner`
considers `AND` to be more canonical than `SIGN_EXTEND_INREG` in this
context, it immediately reverts the node back to `AND`.

This caused an infinite DAGCombine loop. This patch disables the folding
when the C1 is zero. That case is covered by a later combine that already
checks if bit 31 is known to be zero.

Fixes: https://github.com/llvm/llvm-project/issues/221521
(cherry picked from commit f9a8dec9496fea7c55f591a66a64dbcdc085fc2d)
DeltaFile
+34-0llvm/test/CodeGen/RISCV/and-negpow2-cmp.ll
+1-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+35-12 files

LLVM/project f1245b6llvm/lib/CodeGen AggressiveAntiDepBreaker.cpp, llvm/test/CodeGen/Hexagon anti-dep-partial.mir

[CodeGen] Skip pseudo instructions in AggressiveAntiDepBreaker (#222271)

`ScheduleDAGInstrs` does not create SUnits for debug or pseudo
instructions. The aggressive anti-dependency breaker only skipped debug
instructions, so encountering a pseudo such as `PSEUDO_PROBE`
dereferenced a null SUnit.

Skip both debug and pseudo instructions and add a Hexagon regression
covering the existing aggressive anti-dependency path with legacy and
new machine pass managers.

Split from #221984 in response to review.
DeltaFile
+4-0llvm/test/CodeGen/Hexagon/anti-dep-partial.mir
+1-1llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+5-12 files

FreeNAS/freenas d76e6c2src/middlewared/middlewared/api/v26_0_0 s3.py, src/middlewared/middlewared/api/v27_0_0 s3.py

Gate S3 auditing on appliance hardware

This commit adds changes to decide whether the S3 service audits requests from the hardware class rather than from the license, so it matches the gate the kernel audit handler already uses -- both halves of the audit trail land in the same database, so both have to answer to the same thing. The check is renamed audit_supported since it no longer reads a license, and the validation messages and API field descriptions say appliance hardware instead of Enterprise license.
DeltaFile
+19-8src/middlewared/middlewared/plugins/truenas_s3/config.py
+5-5tests/api2/test_s3_config.py
+5-3src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+2-2src/middlewared/middlewared/etc_files/truenas_s3/buckets.conf.mako
+2-2src/middlewared/middlewared/api/v27_0_0/s3.py
+2-2src/middlewared/middlewared/api/v26_0_0/s3.py
+35-226 files

LLVM/project 36ede5cclang-tools-extra/clang-tidy ClangTidyOptions.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Normalize windows line filter paths (#217038)

`git | clang-tidy-diff.py` emits line-filter paths with forward slashes,
while Windows compilation databases use a mix of forwards and backwards
slashes. These paths are then silently rejected (and no report is
emitted).

Reproduce on windows via:
```
git.exe diff -U0 main -- . | python clang-tidy-diff.py -p1 -path .\build"
```

Git will produce a path like:
```
my/source/file.cpp
```

The compilation database has files with entries like this:
```

    [18 lines not shown]
DeltaFile
+70-0clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
+10-10clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h
+8-8clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-diff.cpp
+10-0clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
+6-1clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+109-191 files not shown
+113-207 files

OpenBSD/src SBKTcSdlib/libc/dlfcn init.c

   Since static non-PIE executables also get aux vals on the stack, we
   don't need the special code to find some values inside the executable
   image mapping.
   ok kettenis
VersionDeltaFile
1.27+1-10lib/libc/dlfcn/init.c
+1-101 files

LLVM/project e01829dclang/include/clang/Sema Overload.h, clang/lib/Sema SemaOverload.cpp

[Clang] Avoid unnecessary overload resolution when building RecoveryExpr (#222296)

When overload resolution fails, we tried RecoveryCallExpr which
ended up performing duplicate overload resolutions, where the template
argument deduction can be expensive.

This patch removes those 'known' invalid overload candidates before
RecoveryCallExpr.
DeltaFile
+33-24clang/lib/Sema/SemaOverload.cpp
+4-0clang/include/clang/Sema/Overload.h
+37-242 files

LLVM/project e32ffd8clang/include/clang/CIR/Dialect/IR CIRDialect.td CIRAttrs.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Add offload container attribute (#206576)

Introduce `cir.offload.container`, a CIR dialect unit attribute that marks an
MLIR module as holding a host CIR module and its associated device CIR
modules in one IR unit while later offload merge/split pipeline passes need
visibility into both sides.

The marked module's body holds nested `builtin.module` operations. Each
nested module is tagged with `cir.offload.kind`, represented by the new
`#cir.offload_kind<host>` / `#cir.offload_kind<device>` enum attribute.

The structural contract expected by the follow-up pipeline work is
enforced in `CIRDialect::verifyOperationAttribute`, following the
`gpu.container_module` precedent:

* `cir.offload.container` is a unit attribute attached to a
`builtin.module`
* the first nested module is the host module
* all following nested modules are device modules

    [10 lines not shown]
DeltaFile
+81-0clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+80-0clang/test/CIR/IR/invalid-offload-container.cir
+44-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+28-0clang/test/CIR/IR/offload-container.cir
+4-0clang/include/clang/CIR/Dialect/IR/CIRDialect.td
+237-05 files

LLVM/project 24ba344clang/lib/Driver/ToolChains OpenBSD.cpp, clang/test/Driver pic.c openbsd.c

[Driver][OpenBSD] Use -no-pie instead of -nopie (#220464)

Downstream in OpenBSD there is a patch to add support for -nopie in lld
(which it has used by default since 2018). In this repo lld does not
support `-nopie`, so when building clang and lld, you cannot link an
executable with `clang -fno-pic`. Clang now uses the more widely used
spelling here so that toolchains built from this repo can cross compile
to OpenBSD successfully.

This change is an issue on OpenBSD if users passed a different linker
with `-fuse-ld` / `--ld-path` to `ld.bfd` which is still installed by
default but doesn't support the `-no-pie` spelling with their patches.

(cherry picked from commit a2171756dd5d690faf30bafe63810d1dc6cdb342)
DeltaFile
+5-5clang/test/Driver/openbsd.c
+2-2clang/test/Driver/pic.c
+1-1clang/lib/Driver/ToolChains/OpenBSD.cpp
+8-83 files

LLVM/project e5130a2clang/lib/Driver/ToolChains OpenBSD.cpp, clang/test/Driver openbsd.c

[Driver][OpenBSD] Pass -pie for static PIE links (#216907)

OpenBSD uses `rcrt0.o` for static PIE executables. This startup object
references the linker-defined `_DYNAMIC` symbol.

OpenBSD's system linker defaults to PIE, which previously masked the
missing driver flag. An LLD cross-linker built on a non-OpenBSD host
does not share that default. Consequently,
`clang --target=...-openbsd -static` selects `rcrt0.o`, but LLD does not
create `_DYNAMIC`, causing the link to fail.

(cherry picked from commit 118efe7680bdc010ab984f8ae4505699f53bbca6)
DeltaFile
+6-2clang/lib/Driver/ToolChains/OpenBSD.cpp
+1-0clang/test/Driver/openbsd.c
+7-22 files

LLVM/project a2e2038llvm/include/llvm/IR IntrinsicsAMDGPU.td

[AMDGPU] Add missing attributes to llvm.amdgcn.init.whole.wave (#222493)

`llvm.amdgcn.init.whole.wave` only sets the EXEC mask and reports
whether the lane was active on entry. It never calls into the module,
never frees memory, and always returns, so it can carry `nocallback`,
`nofree`, and `willreturn`.

The neighboring `llvm.amdgcn.init.exec` and
`llvm.amdgcn.init.exec.from.input` already have all three; this brings
`init.whole.wave` in line and lets the attributor propagate them to
callers.
DeltaFile
+1-1llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+1-11 files