LLVM/project 71036f9llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

[NFC] Stop relying on the LocationDescription conversion in unit tests. (#221004)

`LocationDescription` has an implicit conversion from a bare insertion
point, and it leaves DL default-constructed. `OpenMPIRBuilderTest`
depends on that in a number of places, either by naming an insertion
point directly or by handing `Builder.saveIP()` to an entry point that
takes a `LocationDescription`.

Spell out what each of those sites means instead. Where a live builder
is already sitting at the insertion point it is passed directly, and
where the test names an insertion point of its own the empty location is
written out, which is what it was getting before, so no test changes
behavior.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+42-44llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+42-441 files

LLVM/project 288d557clang CMakeLists.txt, llvm CMakeLists.txt

[CIR][CMake] Configure MLIR as a dependency-only project

ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR
explicitly in LLVM_ENABLE_PROJECTS. That also attaches all MLIR build, install,
unit-test, and lit targets to the corresponding LLVM aggregates.

When Clang is selected and CLANG_ENABLE_CIR is enabled, record MLIR in
LLVM_DEPENDENCY_ONLY_PROJECTS. The common project setup normalizes this request
against LLVM_ENABLE_PROJECTS, so an explicit MLIR selection still takes
precedence while an implicit selection remains dependency-only.

This configures the MLIR targets used by CIR without changing
LLVM_ENABLE_PROJECTS or enabling MLIR's aggregate targets. Keep the existing
standalone ClangIR restriction, and continue to omit MLIR when CIR is disabled.

Assisted-by: Codex
DeltaFile
+3-2clang/CMakeLists.txt
+4-0llvm/CMakeLists.txt
+7-22 files

LLVM/project b92b5b9llvm CMakeLists.txt, llvm/cmake/modules AddLLVM.cmake

[CMake] Add dependency-only project mode for Flang's MLIR

LLVM_ENABLE_PROJECTS historically treats projects enabled to satisfy another
project's dependency the same as projects selected by the user. Consequently,
enabling Flang attaches the complete MLIR project, install rules, and test
suites to LLVM's aggregate targets.

Record implicit dependencies in the internal-only
LLVM_DEPENDENCY_ONLY_PROJECTS list without changing LLVM_ENABLE_PROJECTS.
Normalize the list after collecting dependencies so duplicate requests are
removed and explicit project selections always take precedence.

Teach project setup to configure the union of both lists and add
dependency-only source directories with EXCLUDE_FROM_ALL. This keeps every
MLIR target available for normal dependency resolution while omitting MLIR-wide
build and install targets. Flang is the first user of this mode.

Let MLIR own its dependency-only test policy: configure test support libraries
for downstream consumers without creating MLIR unit tests or registering its

    [3 lines not shown]
DeltaFile
+20-9llvm/CMakeLists.txt
+12-6mlir/CMakeLists.txt
+7-2llvm/cmake/modules/AddLLVM.cmake
+39-173 files

LLVM/project 1871cb2clang-tools-extra/clang-tidy .clang-tidy

[clang-tidy][NFC] Convert check list to yaml format (#221411)

Yaml format was introduced in 19-20 release which is old enough to
safely transition our file to new version since we are on 23 release
already.
DeltaFile
+46-45clang-tools-extra/clang-tidy/.clang-tidy
+46-451 files

LLVM/project 0f138f6clang/test/OpenMP interchange_codegen.cpp, llvm/lib/Target/Hexagon HexagonDepMask.h

Rebase

Created using spr 1.3.7
DeltaFile
+17,282-3,458llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve-instructions.s
+7,983-1,591llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-neon-instructions.s
+1,750-2,445clang/test/OpenMP/interchange_codegen.cpp
+3,312-825llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
+2,226-1,164llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+0-2,819llvm/lib/Target/Hexagon/HexagonDepMask.h
+32,553-12,3023,783 files not shown
+201,098-94,4983,789 files

LLVM/project b77c26coffload/libompaccsupport PluginManager.cpp device.cpp, offload/libomptarget omptarget.cpp

[offload][omp] memory operations through liboffload
DeltaFile
+0-90offload/plugins-nextgen/common/src/PluginInterface.cpp
+68-16offload/libompaccsupport/device.cpp
+43-4offload/libompaccsupport/PluginManager.cpp
+12-24offload/libomptarget/OpenMP/API.cpp
+0-31offload/plugins-nextgen/common/include/PluginInterface.h
+25-4offload/libomptarget/omptarget.cpp
+148-1696 files not shown
+181-18512 files

LLVM/project a418a23offload/include PluginManager.h, offload/liboffload exports

[offload][omp] Use olIterateCompatibleDevices for device init and image registration
DeltaFile
+119-109offload/libompaccsupport/PluginManager.cpp
+9-8offload/libompaccsupport/device.cpp
+0-15offload/plugins-nextgen/common/src/PluginInterface.cpp
+5-8offload/include/PluginManager.h
+0-6offload/plugins-nextgen/common/include/PluginInterface.h
+1-4offload/liboffload/exports
+134-1502 files not shown
+142-1518 files

LLVM/project 538acacclang CMakeLists.txt, llvm CMakeLists.txt

[CIR][CMake] Configure MLIR as a dependency-only project

ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR
explicitly in LLVM_ENABLE_PROJECTS. That also attaches all MLIR build, install,
unit-test, and lit targets to the corresponding LLVM aggregates.

When Clang is selected and CLANG_ENABLE_CIR is enabled, record MLIR in
LLVM_DEPENDENCY_ONLY_PROJECTS unless it is already available. This configures
the MLIR targets used by CIR without changing LLVM_ENABLE_PROJECTS or enabling
MLIR's aggregate targets.

Keep explicit MLIR selections unchanged and retain the existing standalone
ClangIR restriction. Clang builds with CIR disabled continue to omit MLIR.

Assisted-by: Codex
DeltaFile
+7-0llvm/CMakeLists.txt
+3-2clang/CMakeLists.txt
+10-22 files

LLVM/project 7c0f02dclang/lib/StaticAnalyzer/Core CallEvent.cpp

Run clang-format once again.
DeltaFile
+2-1clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+2-11 files

LLVM/project 4c42361llvm CMakeLists.txt, llvm/cmake/modules AddLLVM.cmake

[CMake] Add dependency-only project mode for Flang's MLIR

LLVM_ENABLE_PROJECTS historically treats projects enabled to satisfy another
project's dependency the same as projects selected by the user. Consequently,
enabling Flang attaches the complete MLIR project, install rules, and test
suites to LLVM's aggregate targets.

Record implicit dependencies in the internal-only
LLVM_DEPENDENCY_ONLY_PROJECTS list instead of changing LLVM_ENABLE_PROJECTS.
Teach project setup to configure the union of both lists and add dependency-only
source directories with EXCLUDE_FROM_ALL. Flang is the first user of this mode.

This keeps every MLIR target available for normal dependency resolution while
omitting the MLIR-wide build and install targets. Let MLIR own its
dependency-only test policy: configure test support libraries for downstream
consumers without creating MLIR unit tests or registering its lit suite.
Explicitly enabling MLIR preserves the existing behavior.

Assisted-by: Codex
DeltaFile
+16-6llvm/CMakeLists.txt
+12-6mlir/CMakeLists.txt
+7-2llvm/cmake/modules/AddLLVM.cmake
+35-143 files

LLVM/project c40b30foffload/liboffload/API Program.td, offload/liboffload/src OffloadImpl.cpp

[OFFLOAD] Add olIterateCompatibleDevices API
DeltaFile
+73-0offload/unittests/OffloadAPI/program/olIterateCompatibleDevices.cpp
+26-0offload/liboffload/src/OffloadImpl.cpp
+15-0offload/liboffload/API/Program.td
+1-0offload/unittests/OffloadAPI/CMakeLists.txt
+115-04 files

LLVM/project 7987830clang/include/clang/Driver Driver.h Types.h, clang/lib/Driver Types.cpp Driver.cpp

[Clang][Driver] Final phase also determined by input (#218802)

Before this PR, `getFinalPhase` assumed that when no option is give then
the final phase will a linking step. This is objectively wrong: For
instance passing a header file as input (`-x c-header` or `-x
c++-header`) triggers precompilation, not linking. Other inputs that do
not have a link phase as specified by `Types.def`
are `.dxo`, `.ifs`, and `.hlsl` files.

Instead of defaulting to link in the absence of any action flag, this PR
uses the last phase that `Types.def` specifies for the given input
files. The effect of this is relevant when handling linking options
which are categorized as "input" like any other file.
Usually these should be filtered out if
there is no linking step. But, since `getFinalPhase` says there is a
linking flag, those are forwarded to the precompile handling which gets
confused with such "inputs". An accurate determination of the final
phase filters out those non-applicable linker options.


    [8 lines not shown]
DeltaFile
+39-12clang/lib/Driver/Driver.cpp
+48-0clang/test/Driver/pch-inputs.h
+3-3clang/include/clang/Driver/Types.h
+3-2clang/lib/Driver/Types.cpp
+1-1clang/test/Driver/aix-ld.c
+1-0clang/include/clang/Driver/Driver.h
+95-181 files not shown
+95-187 files

LLVM/project 7120e66offload/include PluginManager.h, offload/liboffload exports

[offload][omp] Load plugins through liboffload
DeltaFile
+15-11offload/libompaccsupport/PluginManager.cpp
+5-0offload/liboffload/src/OffloadImpl.cpp
+2-1offload/include/PluginManager.h
+1-1offload/liboffload/exports
+23-134 files

LLVM/project 76cdb7cclang/utils/TableGen CIRLoweringEmitter.cpp

[CIR] Derive lowering attr names from cppClassName, not the def name

CIRLoweringEmitter built its CXX_ABI_ALWAYS_LEGAL_ATTRS entries with
GetOpCppClassName, which splits the TableGen def name at the first
underscore. That works only while every def is named CIR_<CppClassName>Attr.
When one is not, the emitter writes an `isa<>` for a class that does not
exist, and the failure lands as a compile error in generated code.

Attributes carry the authoritative name in cppClassName, which
GenerateAttrToValueVisitor was already reading. Factor that out as
GetAttrCppClassRef and use it for both attribute paths. GetOpCppClassName
stays for operations.

NFC, and checkable. No CIR attribute overrides cppClassName, so the generated
CIRLowering.inc is byte-identical.
DeltaFile
+16-10clang/utils/TableGen/CIRLoweringEmitter.cpp
+16-101 files

LLVM/project 08b4f78clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Move the CIR enums off the legacy EnumAttrInfo hierarchy

MLIR has two enum hierarchies. `EnumAttrInfo` doubles as an `IntegerAttr`
constraint, so every CIR enum had to clear `genSpecializedAttr` to say it did
not want one. `EnumInfo` describes a C++ enum and nothing more.

Derive the CIR bases from `I32Enum`, `I64Enum` and `I32BitEnum`, and widen
`CIR_EnumAttr` to the `EnumInfo` that upstream `EnumAttr` already takes. The
flag no longer exists to clear. `FPClassTestEnum` gets unquoted printing from
`BitEnumBase` rather than overriding `printBitEnumQuoted`, and
`CIR_KnownFuncKind` drops a `parameterPrinter` the generated `operator<<`
now covers, still spelling `#cir.func_identity<"std::find">`.

AMDGPU wraps an `I32Enum` in an `EnumAttr` with this same bracketed format.
Parsing moves to the generated `FieldParser`, whose diagnostic names the
accepted spellings, so two `expected-error` lines change. Generated attribute
code drops 16 KB as 28 inlined parsers collapse into it.
DeltaFile
+0-8clang/include/clang/CIR/Dialect/IR/CIROps.td
+0-81 files

LLVM/project 5491ddeclang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Migrate the FPClassTest bit enum and unquote its flags

cir.is_fp_class printed its flags inconsistently. Single-bit values came out
bare, as in `fcSNan`, while group values and combinations came out quoted, as
in `"fcInf"` and `"fcSNan|fcNegInf"`. That comes from I32BitEnumAttr setting
printBitEnumQuoted, which EnumAttr.td keeps only for backwards compatibility.

Clearing the bit and using the `enum` directive selects the separator-aware
parser and printer, so every value now spells unquoted:

  cir.is_fp_class %x, fcSNan|fcNegInf : (!cir.float) -> !cir.bool

The enum also drops its specialized IntegerAttr for a CIR_EnumAttr wrapper,
giving it the standalone spelling `#cir.fp_class<fcSNan|fcNegInf>`. This
changes operation syntax, so it updates 37 CHECK lines.
DeltaFile
+8-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+8-01 files

LLVM/project ffec4adclang/include/clang/CIR/Dialect/IR CIREnumAttr.td CIROps.td

[CIR] Drop dead ceremony around the CIR enum attributes

Five things that no longer earn their place in the CIR enum attribute
machinery.

CIR_CleanupKindAttr carried three. Its cppClassName restated the default
AttrDef already derives. Its skipDefaultBuilders plus hand-written
AttrBuilder existed only to default $value to CleanupKind::All, which no
caller relies on, so the generated builders stayed suppressed for nothing.
And its summary and description restated the name, overriding the enum's own
"cleanup kind" that EnumAttr would otherwise inherit. The isNormal, isEH and
isNormalAndEH helpers stay.

CIR_TLSModelAttr's summary restated its name the same way, so only that goes.
CIR_DefaultValuedEnumParameter has never had a user.

NFC.
DeltaFile
+0-16clang/include/clang/CIR/Dialect/IR/CIROps.td
+0-5clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
+0-212 files

LLVM/project b864364clang/lib/StaticAnalyzer/Core CallEvent.cpp

[analyzer] Replace getAdjustedParameterIndex with getDeclaredParameterIndex in CallEvent.cpp
DeltaFile
+3-3clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+3-31 files

LLVM/project 59f30dfmlir/include/mlir/Dialect/Tosa/Transforms Passes.td, mlir/lib/Dialect/Tosa/Transforms TosaNarrowTypes.cpp

[mlir][tosa] Add F32 to F16 type narrowing pass (#218900)

Add `tosa-narrow-f32-to-f16`, extending the shared TOSA type narrowing
infrastructure with support for destructively converting F32 tensors,
scalar attributes, dense constants, and resource-backed constants to
F16.

The pass supports conservative and aggressive rewriting, optional
function-boundary conversion, and optional preservation of F32
accumulator types.

Add coverage for constant precision loss, function boundaries, regions,
dense resources, aggressive rewriting, and accumulator-type
preservation.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
DeltaFile
+223-0mlir/test/Dialect/Tosa/tosa-narrow-f32-to-f16.mlir
+139-41mlir/lib/Dialect/Tosa/Transforms/TosaNarrowTypes.cpp
+129-0mlir/test/Dialect/Tosa/tosa-narrow-f32-to-f16-aggressive.mlir
+31-0mlir/include/mlir/Dialect/Tosa/Transforms/Passes.td
+522-414 files

FreeBSD/ports d426f15net/seaweedfs Makefile distinfo

net/seaweedfs: Update 4.41 => 4.45

Changelogs:
- https://github.com/seaweedfs/seaweedfs/releases/tag/4.42
- https://github.com/seaweedfs/seaweedfs/releases/tag/4.43
- https://github.com/seaweedfs/seaweedfs/releases/tag/4.44
- https://github.com/seaweedfs/seaweedfs/releases/tag/4.45

PR:             298262
Approved by:    Boris Korzun <drtr0jan at yandex.ru> (maintainer)
Approved by:    osa, vvd (Mentors, implicit)
DeltaFile
+5-5net/seaweedfs/distinfo
+2-3net/seaweedfs/Makefile
+7-82 files

LLVM/project 922d73fllvm CMakeLists.txt, llvm/cmake/modules AddLLVM.cmake

[CMake] Add dependent project mode for Flang's MLIR

LLVM_ENABLE_PROJECTS currently treats projects enabled to satisfy another
project's dependency the same as projects selected by the user. As a result,
enabling Flang pulls the entire MLIR project, install rules, and test suites
into aggregate targets.

Track implicitly configured projects in LLVM_DEPENDENT_PROJECTS and pass
EXCLUDE_FROM_ALL when adding their source directories. This leaves all MLIR
targets available for Flang's normal dependency resolution without attaching
the MLIR-wide target to the default build or install.

Also force MLIR_INCLUDE_TESTS off when MLIR is pulled in by Flang. This avoids
registering MLIR unit tests and lit suites with check-all. Explicitly listing
mlir continues to use existing behavior and honors MLIR_INCLUDE_TESTS.

Assisted-by: Codex
DeltaFile
+7-2llvm/cmake/modules/AddLLVM.cmake
+8-0llvm/CMakeLists.txt
+15-22 files

LLVM/project b9b5fb9flang/lib/Lower PFTBuilder.cpp

[flang] Enable wrap-unstructured-constructs-in-execute-region by default (#221637)

More extensive testing since the flag was introduced, with the
regressions it uncovered now fixed, see:
* https://github.com/llvm/llvm-project/pull/218674
* https://github.com/llvm/llvm-project/pull/217220
* https://github.com/llvm/llvm-project/pull/217842
* https://github.com/llvm/llvm-project/pull/216280
DeltaFile
+1-1flang/lib/Lower/PFTBuilder.cpp
+1-11 files

LLVM/project e30a45flldb/unittests/Core MangledTest.cpp

[lldb][test] Merge demangling tests into one test (#221214)

The XML test report that LIT generates describes the outcome of every
test in the test suite. Currently, the test report for the LLDB unit
tests alone is about 5MiB of which 4.7MiB (about 94%) are used to
describe all 30'000 DemanglingInfoCorrectnessTest instances names (they
don't have any output on success, so this is just used to describe the
test names).

This patch merges all these test instances into one. To make test
failures still easy to parse, this patch changes test function to use a
gtest scrope (which annotates failures with the mangled name) and use
non-fatal checks to continue testing when one test fails.

This reduces the test report size overhead of these tests from 4.7MiB to
about 100B.

assisted-by: claude
DeltaFile
+57-56lldb/unittests/Core/MangledTest.cpp
+57-561 files

LLVM/project cb9654flldb/packages/Python/lldbsuite/test lldbtest.py

[lldb][test] Bump utility expression timeout to 10 minutes (#221691)

LLDB needs to sometimes run utility expressions such as loading
libraries via a call to `dlopen`. These utility expressions have a
timeout associated with them which is only 15 seconds (and 60 on
sanitized builds).

I suspect our expressions reaching this timeout is the reason why
TestLoadUsingPaths.py sometimes fails to load libraries and produces
this error:

```
  File "../TestLoadUsingPaths.py", line 78, in test_load_using_paths
      self.assertNotEqual(token, lldb.LLDB_INVALID_IMAGE_TOKEN, "Got a valid token")
```

This patch bumps the timeout to 10 minutes. There is no good reason why
this timeout should exist in the first place on test bots, and maybe we
should remove them or make them fatal errors on the test bots. But for
now this patch should at least fix the test randomly failing on very
slow bots.
DeltaFile
+3-0lldb/packages/Python/lldbsuite/test/lldbtest.py
+3-01 files

FreeBSD/src 358fe14sys/dev/sound dummy.c

snd_dummy: Bump primary channel count

Makes it easier to test scenarios involving more than 1 primary channels
per direction.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D59085
DeltaFile
+2-2sys/dev/sound/dummy.c
+2-21 files

FreeBSD/src 5e02679sys/dev/sound/pcm dsp.c

sound: Prefer idle primary channels when allocating

dsp_chn_alloc() stopped at the first primary channel that was either
idle or already had vchans. Since the list is walked in order, the first
channel matched both conditions once it had been used, so every client
after the first was stacked onto it as a vchan and the remaining primary
channels were never allocated at all.

This is invisible on devices with a single primary channel, but not on
those which provide several. snd_emu10kx(4), for instance, registers
four primary channels for its front device, each able to run with its
own rate.

Look for an idle primary channel first, and only fall back to sharing
one that already has vchans when there is none left.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D59084
DeltaFile
+17-7sys/dev/sound/pcm/dsp.c
+17-71 files

FreeBSD/ports 7b9c910net-mgmt Makefile, net-mgmt/rubygem-opn_api distinfo pkg-descr

net-mgmt/rubygem-opn_api: new port

Ruby client library and CLI tool for the OPNsense REST API

It is meant as a replacement for net-mgmt/py-opn-cli. It provides:
- An HTTP client with SSL, redirect handling, and API key authentication
- UUID/name resolution for ModelRelationField and CertificateField references
- Service reconfigure orchestration with configtest support
- OPNsense selection-hash normalization
- A CLI tool for interactive API access
- A resource registry that abstracts away inconsistent endpoint naming

PR:     294026
DeltaFile
+17-0net-mgmt/rubygem-opn_api/Makefile
+9-0net-mgmt/rubygem-opn_api/pkg-descr
+3-0net-mgmt/rubygem-opn_api/distinfo
+1-0net-mgmt/Makefile
+30-04 files

LLVM/project 42b8469llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 split-node-struct-type.ll

[SLP]Fix crash in canBuildSplitNode on struct-typed scalars

Split nodes require plain vector types for the cost model and codegen,
but getWidenedType on a struct scalar type returns a struct-of-vectors,
so the cast<VectorType> asserted. Bail out on struct-typed scalars, they
are not supported.

Fixes #221715

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/221721
DeltaFile
+67-0llvm/test/Transforms/SLPVectorizer/X86/split-node-struct-type.ll
+3-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+70-02 files

FreeBSD/ports 0fc2625www/freenginx distinfo Makefile, www/nginx distinfo Makefile

www/{nginx,nginx-devel,freenginx}: 3rd-party modules management

Use the new www/nginx-module-cache-purge source port instead of
fetching ngx_cache_purge from GitHub.  The module version is now
maintained in one place for these ports.

Sponsored by:   Netzkommune GmbH
DeltaFile
+5-0www/nginx/Makefile
+5-0www/nginx-devel/Makefile
+5-0www/freenginx/Makefile
+1-3www/nginx/distinfo
+1-3www/nginx-devel/distinfo
+1-3www/freenginx/distinfo
+18-93 files not shown
+24-129 files

FreeBSD/ports c92ac0cwww Makefile, www/nginx-module-cache-purge distinfo pkg-descr

www/nginx-module-cache-purge: Add New Port

The cache_purge module adds the ability to purge content from the
proxy, FastCGI, SCGI and uwsgi caches of nginx.  This port installs the
module sources only, the module itself is built by the nginx ports.

Sponsored by:   Netzkommune GmbH
DeltaFile
+33-0www/nginx-module-cache-purge/Makefile
+14-0www/nginx-module-cache-purge/files/pkg-message.in
+5-0www/nginx-module-cache-purge/pkg-descr
+3-0www/nginx-module-cache-purge/distinfo
+1-0www/Makefile
+56-05 files