LLVM/project a5c8863llvm/include/llvm/IR PatternMatch.h, llvm/lib/Analysis InstructionSimplify.cpp

[InstSimplify] Optimize fcmp(min/maxnimumnum) (#185868)

Extend the fcmp(min/maxnum(X, C2), C1) optimization to apply to
min/maximumnum too.
DeltaFile
+328-0llvm/test/Transforms/InstSimplify/floating-point-compare.ll
+9-11llvm/lib/Analysis/InstructionSimplify.cpp
+14-0llvm/include/llvm/IR/PatternMatch.h
+351-113 files

LLVM/project 7ccddd1.github new-prs-labeler.yml

[Github] Add SSAF label for clang/test/Analysis/Scalable/** changes (#186440)
DeltaFile
+1-0.github/new-prs-labeler.yml
+1-01 files

LLVM/project 13c00cbmlir/include/mlir/IR BuiltinAttributes.h BuiltinAttributes.td, mlir/lib/Bindings/Python IRAttributes.cpp

[mlir][IR] Rename `DenseIntOrFPElementsAttr` to `DenseTypedElementsAttr` (#185687)

`DenseIntOrFPElementsAttr` was recently generalized to accept any type
that implement the `DenseElementType` interface. The name
`DenseIntOrFPElementsAttr` does not make sense anymore. This commit
renames the attribute to `DenseTypedElementsAttr`. An alias is kept for
migration purposes. The alias will be removed after some time.
DeltaFile
+43-43mlir/lib/IR/BuiltinAttributes.cpp
+9-10mlir/lib/IR/AsmPrinter.cpp
+11-5mlir/include/mlir/IR/BuiltinAttributes.h
+7-8mlir/lib/IR/BuiltinDialectBytecode.cpp
+5-7mlir/lib/Bindings/Python/IRAttributes.cpp
+4-7mlir/include/mlir/IR/BuiltinAttributes.td
+79-8015 files not shown
+113-10721 files

LLVM/project 7409143clang/tools/ssaf-format CMakeLists.txt, clang/tools/ssaf-linker CMakeLists.txt

[clang][ssaf][NFC] Sort source lists in SSAF build files (#186408)

Sort sources and libs in BUILD.gn and CMake files.
DeltaFile
+2-2llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
+1-1clang/tools/ssaf-linker/CMakeLists.txt
+1-1clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
+1-1clang/tools/ssaf-format/CMakeLists.txt
+5-54 files

LLVM/project f8734a5llvm/include/llvm/Analysis ScalarEvolution.h ScalarEvolutionExpressions.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Introduce SCEVUse, use it instead of const SCEV * (NFCI). (#91961)

This patch introduces SCEVUse, which is a tagged pointer containing the
used const SCEV *, plus extra bits to store NUW/NSW flags that are only
valid at the specific use.

This was suggested by @nikic as an alternative
to https://github.com/llvm/llvm-project/pull/90742.

This patch just updates most SCEV infrastructure to operate on SCEVUse
instead of const SCEV *. It does not introduce any code that makes use
of the use-specific flags yet which I'll share as follow-ups.

Compile-time impact: https://llvm-compile-time-tracker.com/compare.php?from=ee34eb6edccdebc2a752ffecdde5faae6b0d5593&to=5a7727d7819414d2acbc5b6ab740f0fc2363e842&stat=instructions%3Au
DeltaFile
+261-238llvm/lib/Analysis/ScalarEvolution.cpp
+117-47llvm/include/llvm/Analysis/ScalarEvolution.h
+67-66llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
+30-27llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+22-26llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+17-18llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+514-42222 files not shown
+604-50428 files

LLVM/project c272252llvm/lib/CodeGen MIRPrinter.cpp, llvm/lib/CodeGen/MIRParser MIParser.cpp

[MIR] Support symbolic inline asm tiedto constraints (#186397)

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+19-0llvm/lib/CodeGen/MIRParser/MIParser.cpp
+7-7llvm/test/CodeGen/AMDGPU/subreg-undef-def-with-other-subreg-defs.mir
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-tiedto-missing-colon.mir
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-tiedto-missing-dollar.mir
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-tiedto-bad-operand-number.mir
+4-0llvm/lib/CodeGen/MIRPrinter.cpp
+63-76 files

LLVM/project fb18d57flang/include/flang/Lower CUDA.h, flang/lib/Lower ConvertVariable.cpp CUDA.cpp

[flang][OpenMP] Use cuf.alloc for privatization of CUDA Fortran device arrays (#185984)

When CUDA Fortran device arrays are listed in an OpenMP private clause,
the compiler previously allocated private copies on the host heap using
fir.allocmem. This caused device-side operations to receive host
pointers instead of device pointers, leading to cudaErrorIllegalAddress
(700).

Fix by detecting symbols with a CUDA data attribute (device, managed,
unified, etc.) during privatization and using cuf.alloc / cuf.free
instead of fir.allocmem / fir.freemem, so the private copies reside in
device memory.
DeltaFile
+41-8flang/lib/Lower/Support/PrivateReductionUtils.cpp
+31-0flang/test/Lower/OpenMP/delayed-privatization-cuda-device-array.cuf
+10-11flang/lib/Lower/ConvertVariable.cpp
+18-0flang/lib/Lower/CUDA.cpp
+8-0flang/include/flang/Lower/CUDA.h
+108-195 files

LLVM/project 616bf5allvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlanRecipes.cpp

[VPlan] Introduce VPlan::getDataLayout (NFC) (#186418)
DeltaFile
+2-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-3llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+4-0llvm/lib/Transforms/Vectorize/VPlan.h
+1-2llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
+9-94 files

SmartOS/live 059ec27tools build_jenkins

OS-8721 SmartOS builds in Jenkins should guarantee different buildstamps per stage

Reviewed by: Travis Paul <tpaul at edgecast.io>
Approved by: Travis Paul <tpaul at edgecast.io>
DeltaFile
+34-4tools/build_jenkins
+34-41 files

FreeBSD/ports 120a5d5textproc/elasticsearch7 Makefile, textproc/elasticsearch7/files elasticsearch.in

textproc/elasticsearch7: Fix runtime with non-default USERS/GROUPS

Also:
- Respect ETCDIR substitution in rc.d script.
- Replace RM of bundled JDK, jna.jar and modules/x-pack/x-pack-ml files
  with EXTRACT_AFTER_ARGS=--exclude.
- Replace ${JAVASHAREDIR} with ${LOCALBASE}/share/java -
  JAVASHAREDIR=PREFIX/share/java, but devel/jna installed in LOCALBASE.

Approved by:    blanket (fix runtime)
MFH:            2026Q1

(cherry picked from commit fa14dfb0869642be99a46161a09455a20aeddf00)
DeltaFile
+12-6textproc/elasticsearch7/Makefile
+6-6textproc/elasticsearch7/files/elasticsearch.in
+18-122 files

FreeBSD/ports fac1343sysutils/logstash7 Makefile, sysutils/logstash7/files logstash.in

sysutils/logstash7: Fix runtime with non-default USERS/GROUPS

Also:
- Respect LOGSTASH_HOME and ETCDIR substitutions in rc.d script.
- Replace RM of bundled JDK and *.bat files with
  EXTRACT_AFTER_ARGS=--exclude.

Approved by:    blanket (fix runtime)
MFH:            2026Q1

(cherry picked from commit f5c624428d6d4ab4738395d0cbabd6bbb246c526)
DeltaFile
+8-5sysutils/logstash7/Makefile
+5-5sysutils/logstash7/files/logstash.in
+13-102 files

LLVM/project 4c40607llvm/include/llvm/Transforms/Utils UnrollLoop.h, llvm/lib/Transforms/Scalar LoopUnrollPass.cpp LoopUnrollAndJamPass.cpp

[LoopUnroll][NFC] Move unroll pragma helper functions to LoopUnroll.cpp (#185895)

Move loop unroll pragma query helpers (`getUnrollMetadataForLoop`,
`hasUnrollFullPragma`, `hasUnrollEnablePragma`,
`hasRuntimeUnrollDisablePragma`, `unrollCountPragmaValue`) from
`LoopUnrollPass.cpp` and `LoopUnrollAndJamPass.cpp` into
`LoopUnroll.cpp`, and declare them in `UnrollLoop.h`.

These functions were duplicated as `static` helpers in both
`LoopUnrollPass.cpp` and `LoopUnrollAndJamPass.cpp`. Making them
available in `UnrollLoop.h` eliminates the duplication and allows
target-specific code (e.g. TTI implementations) to query unroll
pragma metadata when setting unrolling preferences.

This is in preparation for an upcoming AMDGPU-specific change that
enables `AllowExpensiveTripCount` for pragma-unrolled loops in
AMDGPU's `getUnrollingPreferences()` (#181241), while
discussions on changing the default behavior for all targets continue in
#181267.

    [3 lines not shown]
DeltaFile
+40-0llvm/lib/Transforms/Utils/LoopUnroll.cpp
+0-40llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+19-0llvm/include/llvm/Transforms/Utils/UnrollLoop.h
+0-9llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
+59-494 files

FreeBSD/ports fa14dfbtextproc/elasticsearch7 Makefile, textproc/elasticsearch7/files elasticsearch.in

textproc/elasticsearch7: Fix runtime with non-default USERS/GROUPS

Also:
- Respect ETCDIR substitution in rc.d script.
- Replace RM of bundled JDK, jna.jar and modules/x-pack/x-pack-ml files
  with EXTRACT_AFTER_ARGS=--exclude.
- Replace ${JAVASHAREDIR} with ${LOCALBASE}/share/java -
  JAVASHAREDIR=PREFIX/share/java, but devel/jna installed in LOCALBASE.

Approved by:    blanket (fix runtime)
MFH:            2026Q1
DeltaFile
+12-6textproc/elasticsearch7/Makefile
+6-6textproc/elasticsearch7/files/elasticsearch.in
+18-122 files

FreeBSD/ports f5c6244sysutils/logstash7 Makefile, sysutils/logstash7/files logstash.in

sysutils/logstash7: Fix runtime with non-default USERS/GROUPS

Also:
- Respect LOGSTASH_HOME and ETCDIR substitutions in rc.d script.
- Replace RM of bundled JDK and *.bat files with
  EXTRACT_AFTER_ARGS=--exclude.

Approved by:    blanket (fix runtime)
MFH:            2026Q1
DeltaFile
+8-5sysutils/logstash7/Makefile
+5-5sysutils/logstash7/files/logstash.in
+13-102 files

LLVM/project 63c219blibc/src/__support/FPUtil Hypot.h

[libc][math] Fixed Hypotbf16 build failure. (#186415)

Ref from the build failure in hypotbf16
```CPP
project/libc/src/__support/math/hypotbf16.h:22:33:   required from here
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/FPUtil/Hypot.h:221:44: error: conversion from ‘int’ to ‘StorageType’ {aka ‘short unsigned int’} may change value [-Werror=conversion]
  221 |     r = static_cast<StorageType>((r << 1)) +
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  222 |         ((tail_bits & current_bit) ? 1 : 0);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
cc1plus: all warnings being treated as errors
```

This PR intends to fix that by adding static_cast
DeltaFile
+2-2libc/src/__support/FPUtil/Hypot.h
+2-21 files

LLVM/project fc4fed4clang/lib/CodeGen CGExprScalar.cpp, clang/test/CodeGenHLSL BoolMatrix.hlsl

[HLSL] Codegen column-major matrix initializer lists without a vector shuffle (#186228)

Fixes #185518

The SPIR-V backend does not handle the lowering of `shufflevector`
instructions on vectors with more than 4 elements.
This PR changes the codegen of matrix init lists to directly emit
vectors with elements in column-major order when the default matrix
memory layout is column-major, as opposed to in linear/row-major order
followed by a vector shuffle.

While an alternative fix could be to change the default depth of
[`canEvaluateShuffled`](https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp#L1865-L1866)
to 16 in `InstCombineVectorOps.cpp` to eliminate the vector shuffle for
vectors of up to 16 elements in size (to handle 4x4 matrices), this
change would have broader impacts than just HLSL, which does not seem
necessary for the scope of this issue (which regards only matrix
initializer list codegen).


    [6 lines not shown]
DeltaFile
+17-15clang/lib/CodeGen/CGExprScalar.cpp
+10-12clang/test/CodeGenHLSL/BasicFeatures/MatrixConstructor.hlsl
+9-9clang/test/CodeGenHLSL/BasicFeatures/MatrixInitializerListOrder.hlsl
+7-11clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
+3-4clang/test/CodeGenHLSL/BoolMatrix.hlsl
+46-515 files

LLVM/project 6ab7160llvm/lib/Target/X86 X86AsmPrinter.cpp, llvm/test/CodeGen/X86 dollar-name-asm.ll

[X86] Fix syntax directive for --output-asm-variant=1 (#186316)

`--output-asm-variant=1` in llc/clang correctly prints instructions in
Intel syntax but incorrectly emits `.att_syntax` as the first directive.

Fix this by consulting OutputAsmVariant (with fallback to
AssemblerDialect) when deciding which syntax directive to emit, matching
the same pattern in CodeGenTargetMachineImpl::createMCStreamer
(#109360).
DeltaFile
+3-1llvm/lib/Target/X86/X86AsmPrinter.cpp
+2-0llvm/test/CodeGen/X86/dollar-name-asm.ll
+5-12 files

LLVM/project 4504e85llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] ReplaceNodeResults - i512 shift expansion - generalize vector element counts (#186420)

Prep work for i256 shift expansion support
DeltaFile
+18-14llvm/lib/Target/X86/X86ISelLowering.cpp
+18-141 files

LLVM/project cbb8e08llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 transform-narrow-interleave-to-widen-memory-scalable.ll

[VPlan] Don't narrow wide loads for scalable VFs when narrowing IGs. (#186181)

For scalable VFs, the narrowed plan processes vscale iterations at once,
so a shared wide load cannot be narrowed to a uniform scalar; bail out,
as there currently is not way to create a narrowed load that loads
vscale elements.

Fixes https://github.com/llvm/llvm-project/issues/185860.

PR: https://github.com/llvm/llvm-project/pull/186181
DeltaFile
+11-19llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
+11-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+22-262 files

LLVM/project 9ac7f6flibclc/clc/lib/generic/math clc_sincos_helpers.inc clc_sincos_helpers_fp64.inc

libclc: Disable contract in trig reductions

This fixes conformance test failures.
DeltaFile
+2-0libclc/clc/lib/generic/math/clc_sincos_helpers.inc
+2-0libclc/clc/lib/generic/math/clc_sincos_helpers_fp64.inc
+4-02 files

LLVM/project 5cffcc5clang/include/clang/Options Options.td, clang/lib/CodeGen CGObjCMac.cpp

[ObjC] Support emission of selector stubs calls instead of objc_msgSend. (#186293)

This optimizes objc_msgSend calls by emitting "selector stubs" instead.

Usually, the linker redirects calls to external symbols to a symbol stub
it generates, which loads the target function's address from the GOT and
branches to it:

  <symbol stub for _func:>
    adrp x16, _func at GOTPAGE
    ldr x16, [x16, _func at GOTPAGEOFF]
    br x16

with msgSend selector stubs, we extend that to compute the selector as
well:

  <selector stub for "foo":>
    adrp x1, <selector ref for "foo">@PAGE
    ldr x1, [x1, <selector ref for "foo">@PAGEOFF]

    [41 lines not shown]
DeltaFile
+131-0clang/test/CodeGenObjC/method-selector-stub.m
+42-0clang/test/Driver/darwin-objc-selector-stubs.m
+34-2clang/lib/CodeGen/CGObjCMac.cpp
+8-0clang/lib/Driver/ToolChains/Darwin.cpp
+8-0clang/lib/Driver/ToolChains/Clang.cpp
+3-0clang/include/clang/Options/Options.td
+226-21 files not shown
+227-27 files

FreeBSD/ports 0bf2974devel/shards distinfo Makefile

devel/shards: update to 0.20.0

- https://github.com/crystal-lang/shards/blob/v0.20.0/CHANGELOG.md

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+3-3devel/shards/distinfo
+2-3devel/shards/Makefile
+5-62 files

FreeBSD/ports d7f8048net/lavinmq distinfo Makefile

net/lavinmq: update to 2.6.9

- drop `--error-on-warnings` until LavinMQ next release fully supports
  Crystal 1.19.1 without 9 deprecation warnings

- https://github.com/cloudamqp/lavinmq/blob/v2.6.9/CHANGELOG.md

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+5-5net/lavinmq/distinfo
+3-3net/lavinmq/Makefile
+8-82 files

FreeBSD/ports 4ccbdcblang/crystal pkg-plist Makefile

lang/crystal: update to 1.19.1

- https://github.com/crystal-lang/crystal/blob/release/1.19/CHANGELOG.md

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+828-46lang/crystal/pkg-plist
+6-27lang/crystal/Makefile
+3-3lang/crystal/distinfo
+837-763 files

FreeBSD/ports 04b7363sysutils/podman Makefile, sysutils/podman/files podman_service.in

sysutils/podman: Allow setting ownership on auto-created socket

The podman_service daemon auto-creates a socket on startup, along with
parent directory, and is always run as root. It is often useful to have
another proxy like haproxy or nginx provide more sophisticed security,
and these daemons do not need root privileges.

Approved by:    dfr
Reported by:    pat at patmaddox.com
Tested by:      arrowd
Differential Revision:  https://reviews.freebsd.org/D55455
DeltaFile
+42-5sysutils/podman/files/podman_service.in
+1-0sysutils/podman/Makefile
+43-52 files

FreeBSD/ports a1ab3d1net/amqpcat distinfo Makefile

net/amqpcat: update to 1.1.0

- https://github.com/cloudamqp/amqpcat/releases/tag/v1.1.0

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+3-3net/amqpcat/distinfo
+1-1net/amqpcat/Makefile
+4-42 files

FreeBSD/ports 3637bdefilesystems/versitygw distinfo Makefile

filesystems/versitygw: update to 1.3.1

- https://github.com/versity/versitygw/releases/tag/v1.3.1
- https://github.com/versity/versitygw/releases/tag/v1.3.0
DeltaFile
+5-5filesystems/versitygw/distinfo
+1-2filesystems/versitygw/Makefile
+6-72 files

LLVM/project 097e786clang/test/CodeGen/distributed-thin-lto pass-plugin.ll

XFAIL clang/test/CodeGen/distributed-thin-lto/pass-plugin.ll (#186425)

Failing on AIX as it can't find the new symbol in the exported list.
XFAIL to bring the bots green while we investigate.

Test introduced in: https://github.com/llvm/llvm-project/pull/183525
DeltaFile
+3-0clang/test/CodeGen/distributed-thin-lto/pass-plugin.ll
+3-01 files

LLVM/project 765580dmlir/lib/Conversion/FuncToSPIRV FuncToSPIRVPass.cpp, mlir/lib/Transforms/Utils DialectConversion.cpp

[mlir] Fix crash in dialect conversion for detached root ops (#185068)

When running dialect conversion with --no-implicit-module, the root op
is
parsed without a wrapping module and then detached from its temporary
parsing
block (block == nullptr). If a conversion pattern replaces this detached
root
op, ReplaceOperationRewrite::commit() would crash with a null pointer
dereference when calling op->getBlock()->getOperations().remove(op).

Fix this with two complementary changes:

1. In ReplaceOperationRewrite::commit(), add a guard that calls
   reportFatalInternalError when op->getBlock() is null. This turns the
   opaque null-pointer crash into a clear diagnostic pointing at the API
   misuse.

2. Make --convert-func-to-spirv explicitly reject detached top-level ops

    [9 lines not shown]
DeltaFile
+12-0mlir/lib/Conversion/FuncToSPIRV/FuncToSPIRVPass.cpp
+10-0mlir/test/Conversion/ConvertToSPIRV/detached-root.mlir
+6-0mlir/lib/Transforms/Utils/DialectConversion.cpp
+28-03 files

LLVM/project b1d206bflang/lib/Semantics openmp-utils.cpp

[flang][OpenMP] Account for GenericExprWrapper being null (#186416)

When getting a MaybeExpr from parser::Expr, take into account that the
GeneticExprWrapper (that wraps MaybeExpr) may itself be null.
DeltaFile
+4-1flang/lib/Semantics/openmp-utils.cpp
+4-11 files