LLVM/project e2ce7a6llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

[AArch64] Lower rmw sub to FNEG+LDFADD when LSFE present (#220568)

This patch enables `atomicrmw sub` nodes to be lowered into
FNEG+LD(B)FADD instructions when LSFE is present and we are not in
strictfp environment.

Additionally, this patch fixes a bug which allowed atomicrmw with fp128
to be considered legal when LSFE present.
DeltaFile
+180-218llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll
+179-203llvm/test/CodeGen/AArch64/Atomics/aarch64_be-atomicrmw-lsfe.ll
+45-0llvm/test/CodeGen/AArch64/Atomics/atomicrmw-fsub-lsfe-combine.ll
+27-1llvm/test/CodeGen/AArch64/Atomics/generate-tests.py
+12-0llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+4-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+447-4236 files

LLVM/project 5201760clang/include/clang/CIR/Dialect/IR CIRCUDAAttrs.td CIRTypes.td

[CIR] Use the modern enum case classes

The `I32EnumAttrCase` family carries an `Attr` half, and an `IntegerAttr`
predicate with it, that a CIR enum has no use for now that the enums derive
from `EnumInfo`. Upstream says of those forms that they "are not needed when
using the newer `EnumCase` form".

Rename all 198 of them to `I32EnumCase`, `I32BitEnumCaseNone`,
`I32BitEnumCaseBit` and `BitEnumCaseGroup`. The group class drops its width
prefix because the modern spelling takes the width from its cases.

NFC, mechanical.
DeltaFile
+140-140clang/include/clang/CIR/Dialect/IR/CIROps.td
+43-43clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+8-8clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
+4-4clang/include/clang/CIR/Dialect/IR/CIRTypes.td
+3-3clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
+198-1985 files

LLVM/project 3bf2a28clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/test/CIR/CodeGen callsite-inline-attributes.cpp

[CIR] Drop the redundant suffix from the inline kind mnemonic

inline_kind was the one CIR enum attribute mnemonic still repeating what its
C++ enum class name says. The attribute now spells
`#cir.inline<always_inline>`. The operation argument keeps the name
inline_kind, since that is the accessor name, so the printed form reads
`inline_kind = #cir.inline<always_inline>`.

The enum's summary also becomes "inline kind" rather than the camelCase
"inlineKind", which is what generated docs show now that CIR_InlineKindAttr
no longer overrides it.

25 CHECK lines change across four test files. Nine are in an
aarch64-registered-target test, unsupported in an X86-only build, but the
substitution matches the two CIR tests that do run.
DeltaFile
+9-9clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
+9-9clang/test/CIR/CodeGen/callsite-inline-attributes.cpp
+6-6clang/test/CIR/IR/inline-attrs.cir
+2-3clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+2-2clang/test/CIR/IR/invalid-call.cir
+28-295 files

LLVM/project f08294aclang/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 7bb53bcclang/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 5e4f510clang/include/clang/CIR/Dialect/IR CIROps.td, clang/test/CIR/CodeGenBuiltins builtin-isinf-sign.c builtin-isfpclass.c

[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
+20-20clang/test/CIR/CodeGenBuiltins/builtin-fpclassify.c
+16-16clang/test/CIR/CodeGenBuiltins/builtin-isfpclass.c
+20-0clang/test/CIR/IR/enum-attrs.cir
+12-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+1-1clang/test/CIR/CodeGenBuiltins/builtin-isinf-sign.c
+69-395 files

LLVM/project ac162d0clang/include/clang/CIR/Dialect/IR CIRAttrs.td CIROps.td, clang/test/CIR/IR enum-attrs.cir

[CIR] Migrate GlobalLinkageKind, CallingConv and SideEffect off IntegerAttr

GlobalLinkageKind, CallingConv and SideEffect generated IntegerAttr
subclasses with no dialect spelling of their own. Each now sets
genSpecializedAttr = 0 and gains a CIR_EnumAttr wrapper, and cir.global wraps
$linkage in `enum()`. GlobalLinkageKind spells `#cir.linkage<internal>`,
dropping both the `global_` prefix and the `_kind` suffix.

cir.func and cir.call print all three by hand, but they stream
stringifyGlobalLinkageKind(getLinkage()) and friends, which take the enum
rather than the attribute, so those sites are unchanged.

Operation syntax is unchanged.
DeltaFile
+28-0clang/test/CIR/IR/enum-attrs.cir
+17-8clang/include/clang/CIR/Dialect/IR/CIROps.td
+4-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+49-83 files

LLVM/project c39178fclang/include/clang/CIR/Dialect/IR CIRTypes.td CIRCUDAAttrs.td, clang/test/CIR/IR invalid-call.cir

[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
+33-73clang/include/clang/CIR/Dialect/IR/CIROps.td
+23-53clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+13-9clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
+2-4clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
+1-3clang/include/clang/CIR/Dialect/IR/CIRTypes.td
+1-1clang/test/CIR/IR/invalid-call.cir
+73-1431 files not shown
+74-1447 files

LLVM/project 5bdf8a1clang/include/clang/CIR/Dialect/IR CIROps.td, clang/test/CIR/IR enum-attrs.cir

[CIR] Migrate AssumeBundleKind, AtomicFetchKind and AsmFlavor off IntegerAttr

AssumeBundleKind, AtomicFetchKind and AsmFlavor generated IntegerAttr
subclasses with no dialect spelling of their own. Each now sets
genSpecializedAttr = 0 and gains a CIR_EnumAttr wrapper.

Unlike the other CIR operation enums, these three are reached through
hand-written parsers and printers, so they needed checking individually.
cir.atomic.fetch references $binop declaratively and gains an `enum()`
wrapper. The other two need no change, since printAssumeBundle is already
typed on cir::AssumeBundleKindAttr and InlineAsmOp::print streams the enum
rather than the attribute.

Operation syntax is unchanged.
DeltaFile
+26-0clang/test/CIR/IR/enum-attrs.cir
+19-6clang/include/clang/CIR/Dialect/IR/CIROps.td
+45-62 files

LLVM/project 731afe1clang/include/clang/CIR/Dialect/IR CIROps.td, clang/test/CIR/IR enum-attrs.cir

[CIR] Migrate MemOrder and SyncScopeKind off IntegerAttr

MemOrder and SyncScopeKind, the enums the atomic operations share, generated
IntegerAttr subclasses with no dialect spelling of their own.

Both now set genSpecializedAttr = 0 and gain CIR_EnumAttr wrappers, spelling
`#cir.mem_order<seq_cst>` and `#cir.sync_scope<system>`, and the atomic
operations wrap their arguments in `enum()` to keep the bare keyword.

`enum()` works as an optional-group anchor, so the `syncscope` and `atomic`
groups on cir.load and cir.store are unaffected. Operation syntax is
unchanged.
DeltaFile
+38-30clang/include/clang/CIR/Dialect/IR/CIROps.td
+28-0clang/test/CIR/IR/enum-attrs.cir
+66-302 files

LLVM/project 58e43b8clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp

[CIR] Delete the unused cir::VisibilityAttr

CIR_VisibilityAttr had no users. `cir.global` and `cir.func` carry visibility
as `EnumProp<CIR_VisibilityKind>`, a property rather than an attribute, so
nothing ever built or printed the attribute.

Its only consumer was CIRGenModule::getGlobalVisibilityAttrFromDecl, itself
never called, and that was the only caller of
getGlobalVisibilityKindFromClangVisibility, so all three go together. The
similar getCIRVisibilityKind does have a caller and stays, as does
CIR_VisibilityKind, which the property is built from.

This also removes one of the two attributes overriding their assembly format
to a bare `$value`.
DeltaFile
+1-28clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+0-26clang/lib/CIR/CodeGen/CIRGenModule.cpp
+0-3clang/lib/CIR/CodeGen/CIRGenModule.h
+1-573 files

LLVM/project 2e544a1clang/include/clang/CIR/Dialect/IR CIRCUDAAttrs.td CIROps.td, clang/test/CIR/IR enum-attrs.cir

[CIR] Migrate seven operation enums off IntegerAttr

CastKind, DynamicCastKind, CmpOpKind, ComplexRangeKind, InitCatchKind,
CaseOpKind and AwaitKind generated IntegerAttr subclasses. The operations
printed them symbolically, but in an attribute dictionary `cir.cast bitcast`
was stored as `kind = 1 : i32`.

Each enum now sets genSpecializedAttr = 0 and gains a CIR_EnumAttr wrapper,
and the operations wrap the argument in `enum()` to keep the bare keyword,
giving spellings like `#cir.cast<bitcast>`. Mnemonics drop the suffix the C++
class name carries. DynamicCastKind spells out `dynamic_cast`, since
`dyn_cast` is taken by the operation and by `#cir.dyn_cast_info`.

CUDADeviceVarKind gets no wrapper, being only a raw parameter of
CIR_CUDAVarRegistrationInfoAttr.

Operation syntax is unchanged, and enum-attrs.cir covers the new spellings.
DeltaFile
+57-25clang/include/clang/CIR/Dialect/IR/CIROps.td
+65-0clang/test/CIR/IR/enum-attrs.cir
+4-3clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
+126-283 files

LLVM/project dc6b4e1clang/lib/CIR/Dialect/IR CIRDialect.cpp CIRAttrs.cpp, clang/test/CIR/CodeGenOpenCL kernel-arg-info.cl

[CIR] Drop lang_address_space's custom parenthesized attribute format (#220880)

CIR_LangAddressSpaceAttr overrode its assembly format to
`(` custom<AddressSpaceValue>($value) `)`. The parentheses defeated the
dialect's `#cir.mnemonic<...>` syntax, so the attribute printed as
`#cir<lang_address_space(offload_global)>`. It now uses the bracketed
CIR_EnumAttr default and spells
`#cir.lang_address_space<offload_global>`.

The `lang_address_space(x)` spelling inside `!cir.ptr` and `cir.global`
is
unaffected, since that goes through MemorySpaceAttrInterface in
CIRTypes.cpp.
The attribute-level pair in CIRAttrs.cpp was only reachable from the
deleted
format, so it goes away.
DeltaFile
+16-23clang/lib/CIR/Dialect/IR/CIRTypes.cpp
+14-14clang/test/CIR/CodeGenOpenCL/kernel-arg-info.cl
+0-20clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+6-6clang/test/CIR/IR/invalid-opencl-kernel-arg-metadata.cir
+4-4clang/test/CIR/IR/opencl-kernel-arg-metadata.cir
+4-4clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+44-715 files not shown
+51-8211 files

LLVM/project 340e39aclang/test/OpenMP interchange_codegen.cpp, llvm/lib/Target/Hexagon HexagonDepMask.h

Rebase, improvements

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,738-2,433clang/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,541-12,2902,513 files not shown
+139,592-61,0212,519 files

LLVM/project 930f054clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR][NFC] Share getSuccessorRegions across region-branch ops

Six of the ten CIR ops implementing RegionBranchOpInterface reported the same
successors: any of their regions may be entered from the parent operation, and
every region exit goes back to it. Add a CIR_EnterAnyRegionBranchOpBase class
that appends that definition to the one inherited from CIR_RegionBranchOpBase,
retarget the six ops onto it and delete their hand-written definitions.

The shared definition walks getRegions() rather than naming region accessors.
For all six ops the entry regions were exactly the declared regions in
declaration order, so it reports the same successors in the same order. The doc
comments of the deleted ScopeOp and TernaryOp definitions go with them, instead
of being left behind on the neighbouring builders.

IfOp, GlobalOp, TryOp and AwaitOp stay on the base class, since their successors
depend on the operation: IfOp falls back to the parent when the else region is
empty, GlobalOp skips its optional ctor and dtor regions, TryOp iterates
variadic handler regions, and AwaitOp routes ready to resume and suspend.
DeltaFile
+0-77clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+27-6clang/include/clang/CIR/Dialect/IR/CIROps.td
+27-832 files

LLVM/project 0f297d7clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR][NFC] Share getSuccessorInputs across region-branch ops

The ten CIR ops implementing RegionBranchOpInterface each hand-wrote
getSuccessorInputs, and all ten bodies were equivalent: regions take no
inputs, and returning to the parent yields the parent's results. Three did
not look equivalent but are: CleanupScopeOp and CoroBodyOp returned an empty
ValueRange unconditionally and declare no results, and AwaitOp returned
region block arguments but carries NoRegionArguments, so those ranges are
always empty.

Add a CIR_RegionBranchOpBase ODS class that declares the method and generates
the single shared body through extraClassDefinition, mirroring the existing
CIR_LoopOpBase, and retarget all ten ops onto it.

The generated CIROps.h.inc is unchanged and CIROps.cpp.inc gains exactly the
ten definitions removed from CIRDialect.cpp.
DeltaFile
+0-57clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+28-20clang/include/clang/CIR/Dialect/IR/CIROps.td
+28-772 files

LLVM/project c5da0e9clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/unittests/CIR ControlFlowTest.cpp

[CIR] Add RegionBranchOpInterface unit tests and fix cir.await successors (#220507)

Adds unit tests for the five CIR ops that implement
`RegionBranchOpInterface`
with no coverage today, and fixes a `cir.await` bug the new tests found:

`verifyControlFlowInterfaceConsistency` fails on `cir.await` today,
because the
op and its own terminator disagree. `cir.condition` terminates the ready
region
and reports `{resume, suspend}` when the parent is an await, while
`AwaitOp::getSuccessorRegions` listed all three regions as entry
successors and
reported the parent op as the successor of every region exit.

The corrected edges match what `cir.condition` already reports:

- from the parent, the only entry successor is `ready`
- from `ready`, the successors are `resume` and `suspend`
- from `suspend` or `resume`, the successor is the parent operation
DeltaFile
+155-0clang/unittests/CIR/ControlFlowTest.cpp
+20-7clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+175-72 files

OPNSense/core a425d7asrc/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Firewall: use text-warning and yellow as the color for match rules
DeltaFile
+3-3src/opnsense/www/js/widgets/Firewall.js
+4-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+8-63 files

OpenBSD/ports kCuaykNwww/p5-URI Makefile distinfo

   update p5-URI to 5.37
VersionDeltaFile
1.37+2-2www/p5-URI/distinfo
1.59+1-1www/p5-URI/Makefile
+3-32 files

HardenedBSD/src dfb7120share/man/man4 ix.4, sys/dev/ixgbe if_ix.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+212-153sys/dev/ixgbe/if_ix.c
+107-0usr.sbin/pw/tests/pw_unit_test.c
+35-0usr.sbin/pw/tests/pw_useradd_test.sh
+12-8sys/kern/kern_umtx.c
+19-1share/man/man4/ix.4
+20-0usr.sbin/pw/tests/pw_test.sh
+405-16210 files not shown
+442-18316 files

HardenedBSD/src 14750c2share/man/man4 ix.4, sys/dev/ixgbe if_ix.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+212-153sys/dev/ixgbe/if_ix.c
+107-0usr.sbin/pw/tests/pw_unit_test.c
+35-0usr.sbin/pw/tests/pw_useradd_test.sh
+12-8sys/kern/kern_umtx.c
+19-1share/man/man4/ix.4
+20-0usr.sbin/pw/tests/pw_test.sh
+405-16210 files not shown
+442-18316 files

LLVM/project 5780758mlir/include/mlir/Dialect/Arith/IR ArithOps.td, mlir/lib/Dialect/Arith/IR ArithOps.cpp

[mlir][arith] Fold scaling_extf and scaling_truncf with constant operands (#215123)

Add constant folders for the two MXFP scaling casts, mirroring the
expansion
in `ExpandOps.cpp`:

```
scaling_extf(in, scale)   -> mulf(extf(in), extf(scale))
scaling_truncf(in, scale) -> truncf(in / extf(scale))
```

Note the asymmetry the expansion already has: `scaling_extf` widens the
scale
to the result type, `scaling_truncf` to the type of `in`.

These were the only two ops in the dialect with neither a folder nor a
canonicalizer, so `-canonicalize` left them alone even with both
operands
constant, while `-arith-expand -canonicalize` folded them away.

    [32 lines not shown]
DeltaFile
+145-0mlir/test/Dialect/Arith/canonicalize.mlir
+116-0mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+2-0mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+263-03 files

HardenedBSD/ports 73ea28fdevel/jujutsu Makefile.crates distinfo, emulators/pcsx2 Makefile

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+323-321devel/jujutsu/distinfo
+0-332misc/qt5-examples/pkg-plist
+160-159devel/jujutsu/Makefile.crates
+47-17graphics/oxipng/distinfo
+31-28emulators/pcsx2/Makefile
+0-40graphics/oxipng/files/patch-man
+561-89746 files not shown
+843-1,00852 files

LLVM/project d812b4allvm/test/Transforms/SLPVectorizer/X86 horizontal-fadd-with-sub.ll

[SLP][NFC]Add extra test for flattened fneg/fadd chains, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/221208
DeltaFile
+914-0llvm/test/Transforms/SLPVectorizer/X86/horizontal-fadd-with-sub.ll
+914-01 files

LLVM/project e96c3fcclang/lib/CIR/CodeGen TargetInfo.h CIRGenFunctionInfo.h, clang/lib/CIR/CodeGen/Targets SPIRV.cpp

[CIR][SPIR-V] Set spir_kernel calling convention for AMDGCN-flavored HIP kernels (#214246)

CIR emitted no calling convention for HIP `__global__` kernels on the
`spirv64-amd-amdhsa` target, unlike generic SPIR-V, which already gets
`spirv_kernel` CC
DeltaFile
+23-9clang/lib/CIR/CodeGen/CIRGenCall.cpp
+7-17clang/lib/CIR/CodeGen/Targets/SPIRV.cpp
+23-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+19-3clang/lib/CIR/CodeGen/CIRGenTypes.cpp
+19-2clang/lib/CIR/CodeGen/CIRGenFunctionInfo.h
+6-6clang/lib/CIR/CodeGen/TargetInfo.h
+97-375 files not shown
+113-4411 files

HardenedBSD/ports 60b408bdeskutils/mindforger Makefile

deskutils/mindforger: Schedule for removal

Depends on deprecated Qt5 WebEngine

PR:             296230
DeltaFile
+4-1deskutils/mindforger/Makefile
+4-11 files

FreeBSD/ports 60b408bdeskutils/mindforger Makefile

deskutils/mindforger: Schedule for removal

Depends on deprecated Qt5 WebEngine

PR:             296230
DeltaFile
+4-1deskutils/mindforger/Makefile
+4-11 files

OPNSense/core 17db3d8src/etc/inc interfaces.inc

foo
DeltaFile
+1-1src/etc/inc/interfaces.inc
+1-11 files

FreeNAS/freenas 7db32cb.github/workflows mypy.yml, src/middlewared/middlewared/plugins/truenas_s3 grants.py config.py

Check the S3 plugin under mypy strict

Nothing checked the plugin's annotations, and it showed. The grant
helpers took Iterable of GrantRow or Mapping of str to Any, a union
that accepts whatever the Mapping accepts, so the TypedDict added
nothing. It now takes GrantRow alone. The rows a datastore query hands
over are Any, which is assignable to that, so the TypedDict is what
stops the Any at the boundary rather than a cast the callers would
have to write.

The plugin joins the mypy workflow's list and passes strict. What that
took is small. Two list variables in the listen text needed a type.
Values read off middleware.call are Any and were returned as bool or
int or None, so they land in an annotated name first. The port
validator helper is untyped and only forwards to port.validate_port,
so the plugin calls that directly. The delegates read the config as
the entry it is rather than dumping it, and the listen delegate dumps
each listener itself. audited_bucket_names queries through
middleware.call, where the result is typed as the list it is, instead

    [5 lines not shown]
DeltaFile
+34-19src/middlewared/middlewared/plugins/truenas_s3/__init__.py
+13-7src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+9-6src/middlewared/middlewared/plugins/truenas_s3/config.py
+6-6src/middlewared/middlewared/plugins/truenas_s3/grants.py
+1-0.github/workflows/mypy.yml
+63-385 files

OPNSense/core a1d7bb4src/etc/inc interfaces.inc

foo
DeltaFile
+1-1src/etc/inc/interfaces.inc
+1-11 files