LLVM/project d03786eutils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes d93b383 (#218593)

This fixes d93b3836429c810681f34785bb1463198c80c749 (#218394).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=d93b3836429c810681f34785bb1463198c80c749

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

FreeBSD/ports 60b9e77lang/elixir-devel Makefile distinfo

lang/elixir-devel: update to 1.20.3

- ChangeLog https://github.com/elixir-lang/elixir/releases/tag/v1.20.3

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+5-5lang/elixir-devel/distinfo
+1-1lang/elixir-devel/Makefile
+6-62 files

LLVM/project dad2928clang/docs HIPSupport.md, clang/lib/AST ExprConstant.cpp

[clang][HIP] Do not treat address of managed variable as a constant expression (#217047)

According to CUDA programming guide, the address of a __managed__
variable is not a constant expression, so it should not be accepted
where a constant expression is expected, i.e. NTTP, constexpr variable
initializers etc. Right now because addresses of managed variables are
assumed to be constexpr, crashes in clang's codegen happen during
replacement of uses of managed variables with loads from transformed
managed variables. It is not expected that a use of a managed variable
can be `llvm::ConstantExpr` which clang creates due to assumption that
address of a managed variable is a constant expression.

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

Assisted-by: claude in documentation writing
DeltaFile
+58-0clang/docs/HIPSupport.md
+52-0clang/test/SemaCUDA/managed-var.cu
+19-0clang/lib/Sema/SemaCUDA.cpp
+18-0clang/test/CodeGenCUDA/managed-var.cu
+4-5clang/test/SemaCUDA/constexpr-var.cu
+5-2clang/lib/AST/ExprConstant.cpp
+156-73 files not shown
+163-109 files

LLVM/project c6c5541llvm/docs/CommandGuide llc.rst, llvm/test/Other codegen-plugin-loading.ll

[PluginLoader] Drop legacy -load option from llc (#217860)

Loading of legacy Codegen pass plugins is the last remaining use-case
for the `-load` option in llc. We can drop it, if we switch the
respective test to `-load-pass-plugin`. We use the option only to load
the plugin shared-lib.
DeltaFile
+10-0llvm/unittests/CodeGen/CGPluginTest/Plugin/Plugin.cpp
+0-6llvm/docs/CommandGuide/llc.rst
+1-1llvm/test/Other/codegen-plugin-loading.ll
+0-1llvm/tools/llc/llc.cpp
+11-84 files

LLVM/project e04b7cellvm/lib/Target/X86 X86.td, llvm/test/CodeGen/X86 pr77459.ll

[X86] Remove TuningFastVariableCrossLaneShuffle from X86_64V4Tuning (#212178)

## 1. Background

This flag pushes the compiler toward a shuffle variant that pulls its
permutation pattern from memory, even when that pattern is a
compile-time constant that could just be baked straight into the
instruction. Skipping the load shows gains whenever the pattern is fixed
like that.

We propose dropping it from the `x86-64-v4` tuning list as both SPEC and
the microbenchmark below show a real improvement in runtime in both
Intel and AMD machines.

## 2. SPEC impact

We ran SPEC CPU2017 `base` tuning, `refrate`. No regressions observed in
any of the other benchmarks in the suite, and **noticable gains were
observed in 557.xz_r**

    [137 lines not shown]
DeltaFile
+2-2llvm/test/CodeGen/X86/pr77459.ll
+0-1llvm/lib/Target/X86/X86.td
+2-32 files

LLVM/project 69e8298llvm/lib/MC/MCParser AsmParser.cpp, llvm/test/MC/AsmParser block-comment.s

[MC] eatToEndOfStatement: eat trailing EOL with Lex() (#218590)

eatToEndOfStatement() advances the lexer with Lexer.Lex(), which neither
filters comment tokens nor pops the include stack at Eof. It therefore
leaves the token after the newline unfiltered, and leads to a spurious
error:

```
.extern foo
/* comment */
nop

error: unexpected token at start of statement
```

Fix with Lex(). Loosely take and clean up tests from #218456
DeltaFile
+65-0llvm/test/MC/AsmParser/block-comment.s
+2-2llvm/lib/MC/MCParser/AsmParser.cpp
+67-22 files

LLVM/project 38419e4llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/CodeGen/X86 fp128-powi-strict.ll fp128-libcalls-strict.ll

RuntimeLibcalls: Stop providing __powitf2 on MSVCRT (#216987)

MSVCRT does not provide the powi helpers, so gate the fp128 __powitf2 on
isNotOSMSVCRT alongside the f32/f64 __powisf2/__powidf2, instead of
adding it unconditionally. The unconditional add was a hack to satisfy a test
that expected a wrongly-typed powi call on windows-msvc.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+21-133llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
+67-0llvm/test/CodeGen/X86/fp128-powi-strict.ll
+2-4llvm/include/llvm/IR/RuntimeLibcalls.td
+90-1373 files

LLVM/project fb8f0e6llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 optimize-cond-branch-undef.mir

AArch64: Fix assert on fold of undef operand

Co-Authored-By: Claude <noreply at anthropic.com> (Claude Opus 4.8)
DeltaFile
+104-0llvm/test/CodeGen/AArch64/optimize-cond-branch-undef.mir
+4-3llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+108-32 files

LLVM/project fcd34f4llvm/test/CodeGen/AMDGPU redundant-ballot-reads.ll, llvm/test/CodeGen/X86 finite-libcalls.ll fp80-math-libcalls.ll

Merge branch 'main' into users/rampitec/gfx1250-strict
DeltaFile
+448-0llvm/test/CodeGen/AMDGPU/redundant-ballot-reads.ll
+411-0mlir/test/Dialect/Linalg/fusion-elementwise-ops-with-concat.mlir
+374-0llvm/test/CodeGen/X86/fp80-math-libcalls.ll
+0-359llvm/test/CodeGen/X86/finite-libcalls.ll
+298-0llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-shared-subtree-demotion.s
+292-0mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
+1,823-35977 files not shown
+4,334-92583 files

FreeBSD/ports 6d37b11mail/sympa pkg-plist Makefile, mail/sympa/files patch-configure.ac patch-issue1966

mail/sympa: Update to 6.2.78

PR:             296993
Approved by:    Geoffroy Desvernay (maintainer)
DeltaFile
+177-0mail/sympa/files/patch-issue1984
+0-48mail/sympa/files/patch-issue1966
+0-10mail/sympa/files/patch-configure.ac
+3-3mail/sympa/distinfo
+2-2mail/sympa/Makefile
+2-0mail/sympa/pkg-plist
+184-636 files

LLVM/project 7c9ba66clang/test/Analysis/Scalable/source-edit-generation write-failure.cpp coexistence.cpp

[Clang][Analyzer] XFAIL tests failing after revert (#218572)

rdar://185749574

Co-authored-by: Mariusz Borsa <m_borsa at apple.com>
DeltaFile
+3-0clang/test/Analysis/Scalable/source-edit-generation/happy-path.cpp
+2-0clang/test/Analysis/Scalable/source-edit-generation/write-failure.cpp
+2-0clang/test/Analysis/Scalable/source-edit-generation/coexistence.cpp
+7-03 files

LLVM/project 5721f97libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel ctor.convert.pass.cpp

[libc++][ranges][enumerate_view] Fix sentinel converting constructor test (#217365)

Completes the `[range.enumerate.sentinel]` converting constructor test
by addressing the review comment
https://github.com/llvm/llvm-project/pull/73617#discussion_r1416643142
from the original implementation.

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>
DeltaFile
+73-10libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.convert.pass.cpp
+73-101 files

LLVM/project 62ddea6compiler-rt/lib/asan asan_rtl.cpp

Revert PrintAddressSpaceLayout changes, only print kGaplessShadow flag
DeltaFile
+36-41compiler-rt/lib/asan/asan_rtl.cpp
+36-411 files

OPNSense/core 8deecf2src/etc/inc certs.inc, src/opnsense/mvc/app/library/OPNsense/Trust Store.php

trust: fix server certificate purpose detection (#10785)

The current check requires digitalSignature together with either
keyEncipherment or keyAgreement. This rejects valid ECDSA server
certificates that only use digitalSignature.

RFC 5280 section 4.2.1.12 lists these key usage bits as alternatives
consistent with serverAuth. Accept any compatible bit, or an absent key
usage extension, and apply the same logic in Store.php and certs.inc.
DeltaFile
+5-3src/opnsense/mvc/app/library/OPNsense/Trust/Store.php
+4-3src/etc/inc/certs.inc
+9-62 files

LLVM/project 4556f93flang/lib/Optimizer/CodeGen CodeGen.cpp, flang/test/Fir tbaa.fir convert-to-llvm.fir

[flang][CodeGen] Use a signless attribute for the addendum flag masks

The descriptor addendum flag masks were built as `ui8` attributes but attached
to `i8` constants:

  llvm.mlir.constant(254 : ui8) : i8

The LLVM dialect only models signless integers, so the attribute type and the
result type disagree. Use the signless `i8` type for the attribute as well; the
bit patterns are unchanged, only their printed form is (`254 : ui8` becomes
`-2 : i8`).

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+2-2flang/test/Fir/convert-to-llvm.fir
+2-2flang/lib/Optimizer/CodeGen/CodeGen.cpp
+1-1flang/test/Fir/tbaa.fir
+5-53 files

LLVM/project 79fd479bolt/lib/Core BinaryFunction.cpp, bolt/lib/Target/RISCV RISCVMCSymbolizer.h RISCVMCSymbolizer.cpp

[BOLT][RISCV] Add target symbolizer for relocations (#217944)

Depends on #217550, which adds RISC-V disassembler symbolization hooks
for `UImm20` and `SImm12Lo` operands.

BOLT currently reconstructs RISC-V relocation-backed operands in
`BinaryFunction::disassemble()` after the instruction has been decoded.
This places RISC-V-specific relocation handling in target-independent
code and makes it difficult to correctly associate `%pcrel_lo`
relocations with their corresponding `%pcrel_hi` instructions after code
movement.

This change adds a target-specific `RISCVMCSymbolizer` and installs it
through `RISCVMCPlusBuilder`. Relocation-backed `MCExpr` operands are
now created directly while instructions are being decoded.
DeltaFile
+153-0bolt/lib/Target/RISCV/RISCVMCSymbolizer.cpp
+62-0bolt/lib/Target/RISCV/RISCVMCSymbolizer.h
+0-50bolt/lib/Core/BinaryFunction.cpp
+35-0bolt/test/RISCV/reloc-got-moved.s
+35-0bolt/test/RISCV/reloc-got-moved-rv32.s
+31-0bolt/test/RISCV/reloc-pcrel-moved.s
+316-509 files not shown
+389-8315 files

LLVM/project c1b6f77llvm/lib/Target/LoongArch LoongArch.h LoongArchTargetMachine.cpp, llvm/test/CodeGen/LoongArch opt-pipeline.ll memory-barrier-opt.ll

[LoongArch] Add memory barrier optimization pass

Add a machine-level pass to remove redundant DBARs and merge them
with atomic memory operations. The pass uses machine dominator and
post-dominator trees to ensure the transformation is safe across
basic blocks.
DeltaFile
+782-205llvm/test/CodeGen/LoongArch/memory-barrier-opt.ll
+645-0llvm/lib/Target/LoongArch/LoongArchMemoryBarrierOpt.cpp
+3-0llvm/test/CodeGen/LoongArch/opt-pipeline.ll
+3-0llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
+2-0llvm/lib/Target/LoongArch/LoongArch.h
+1-0llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
+1,436-2051 files not shown
+1,437-2057 files

LLVM/project 346efdallvm/test/CodeGen/LoongArch memory-barrier-opt.ll

[LoongArch][NFC] Add tests for memory barrier optimization
DeltaFile
+711-0llvm/test/CodeGen/LoongArch/memory-barrier-opt.ll
+711-01 files

LLVM/project 2be211bllvm/lib/Target/AMDGPU AMDGPUUniformIntrinsicCombine.cpp, llvm/test/CodeGen/AMDGPU redundant-ballot-reads.ll

[AMDGPU] Combine redundant ballot intrinsic calls (#218357)

Suppose there is a loop where there is a call to @llvm.amdgcn.ballot,
which maps to an instruction involving the exec mask as an operand. This
instruction duplicates if the loop is unrolled. With a higher number of
unrolled iterations, the code bloats with such redundant instructions
with $exec as there is no middle-end/backend pass which could combine
such instructions in a uniform CFG.

This patch introduces a transform in AMDGPUUniformIntrinsicCombine to
combine redundant calls to @llvm.amdgcn.ballot, to mitigate this issue.

The approach is to walk over the dominator tree and collect all calls to
@llvm.amdgcn.ballot. Map the result type and condition to the calls, to
avoid combining calls of different kinds. Calls A and B can be combined
into A iff:
- A and B are identical
- A dominates B
- all paths from A to B are uniform and exec-invariant.

Co-authored by Claude Opus 5
DeltaFile
+448-0llvm/test/CodeGen/AMDGPU/redundant-ballot-reads.ll
+170-5llvm/lib/Target/AMDGPU/AMDGPUUniformIntrinsicCombine.cpp
+618-52 files

OpenBSD/src gsM99Zjusr.bin/tmux server-client.c

   Do not leak exit message on client free, from Jeong, Heon.
VersionDeltaFile
1.508+3-3usr.bin/tmux/server-client.c
+3-31 files

LLVM/project d93b383mlir/include/mlir/Transforms Passes.h Passes.td, mlir/lib/Transforms CompositePass.cpp

[MLIR] Configure CompositeFixedPointPass's convergence-failure behavior (#218394)

Add an option to `CompositeFixedPointPass` controlling what happens if
the pass fails to converge within max-iterations: emit a warning
(default), emit an error and fail the pass, or do nothing.
DeltaFile
+30-0mlir/test/lib/Transforms/TestCompositePass.cpp
+27-0mlir/include/mlir/Transforms/CompositePass.h
+19-7mlir/lib/Transforms/CompositePass.cpp
+18-0mlir/test/Transforms/composite-pass-convergence-failure.mlir
+12-0mlir/include/mlir/Transforms/Passes.td
+4-1mlir/include/mlir/Transforms/Passes.h
+110-86 files

LLVM/project 94fa34bflang/lib/Optimizer/CodeGen CodeGen.cpp

simplification
DeltaFile
+29-38flang/lib/Optimizer/CodeGen/CodeGen.cpp
+29-381 files

LLVM/project cbc5a22lldb/source/Expression DWARFExpression.cpp, lldb/unittests/Expression DWARFExpressionTest.cpp

[lldb] Compare generic DWARF relational operands as signed values (#218335)

DWARF v5 requires relational comparisons whose operands have the generic
type
to be performed as signed operations. LLDB currently dispatches
`DW_OP_lt`,
`DW_OP_le`, `DW_OP_gt`, and `DW_OP_ge` directly to `Scalar` comparisons,
whose
C-like integer promotion makes an equal-width unsigned operand win. As a
result, the generic comparison of an all-one address-sized value with
zero can
be evaluated as `UINT64_MAX < 0` instead of `-1 < 0`.

Reuse the evaluator's existing approximation for potentially generic
integer
operands and mark temporary operand copies signed before evaluating the
four
ordering operations. This keeps the change local to DWARF expression
semantics, without changing general `Scalar` comparisons or `DW_OP_eq`

    [18 lines not shown]
DeltaFile
+39-0lldb/unittests/Expression/DWARFExpressionTest.cpp
+33-0lldb/source/Expression/DWARFExpression.cpp
+72-02 files

LLVM/project bbf8fa8llvm/test/TableGen RuntimeLibcallEmitter-library-dispatch.td, llvm/utils/TableGen/Basic RuntimeLibcallsEmitter.cpp

RuntimeLibcalls: Dispatch to library functions from SystemRuntimeLibrary

When a SystemRuntimeLibrary names LibcallLibrary defs, setTargetRuntimeLibcallSets
now dispatches each under an isLibraryAvailable guard, so an impl can be homed
into a library without dropping it from the target. Non-library members keep the
inline path. No target names a library yet, so output is unchanged.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+52-0llvm/test/TableGen/RuntimeLibcallEmitter-library-dispatch.td
+39-2llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+91-22 files

LLVM/project 13654d8llvm/include/llvm/IR RuntimeLibcallsImpl.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Introduce LibcallLibrary schema

Currently the set of system libraries calls is flat and
disorganized. Begin organizing this per-provider library.
The goal is to organize groups of functions by named sets,
corresponding to the underlying library which will be linked.

A LibcallLibrary is a named runtime library whose impls are made
available as a unit; its members use the same dag vocabulary as
LibcallImpls. The emitter emits one setAvailableLibFuncs_<name>
per distinct library name, merging same-named libraries under their
per-variant availability predicates. isLibraryAvailable()
is added as a stub for a future dispatch driver. No target
defines a LibcallLibrary, so generated output is mostly unchanged
(there are some incidental enum reorderings).

Reorganizing all of the library functions require a good bit more
infrastructure to be practical, but this is a minimally functional
piece to start the review.

    [2 lines not shown]
DeltaFile
+253-83llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+102-0llvm/test/TableGen/RuntimeLibcallEmitter-library-name-merge.td
+80-0llvm/test/TableGen/RuntimeLibcallEmitter-library-grouping.td
+12-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+6-0llvm/lib/IR/RuntimeLibcalls.cpp
+2-2llvm/test/TableGen/RuntimeLibcallEmitter-multiple-impls.td
+455-851 files not shown
+459-857 files

LLVM/project df00624llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/CodeGen/X86 fp128-powi-strict.ll fp128-libcalls-strict.ll

RuntimeLibcalls: Stop providing __powitf2 on MSVCRT

MSVCRT does not provide the powi helpers, so gate the fp128 __powitf2 on
isNotOSMSVCRT alongside the f32/f64 __powisf2/__powidf2, instead of adding it
unconditionally. The unconditional add was a hack to satisfy a test that
expected a wrongly-typed powi call on windows-msvc.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+21-133llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
+67-0llvm/test/CodeGen/X86/fp128-powi-strict.ll
+2-4llvm/include/llvm/IR/RuntimeLibcalls.td
+90-1373 files

FreeBSD/ports dc73a6enet Makefile, net/rubygem-oauth-gitlab Makefile

www/gitlab: fix regression by de79e0fe79131da57d98504a8871a94f75af43e9

it cause deinstallation of gitlab:
Checking integrity... done (2 conflicting)
  - rubygem-anonymous_loader-0.1.3 [gitlab] conflicts with rubygem-anonymous_loader-gitlab-0.1.3 [installed] on /usr/local/lib/ruby/gems/3.4/gems/anonymous_loader-0.1.3/CHANGELOG.md
  - rubygem-auth-sanitizer-0.2.3 [gitlab] conflicts with rubygem-auth-sanitizer-gitlab-0.2.3 [installed] on /usr/local/lib/ruby/gems/3.4/gems/auth-sanitizer-0.2.3/CHANGELOG.md
...
Installed packages to be REMOVED:
        gitlab-ce: 19.3.0
...
DeltaFile
+25-0net/rubygem-oauth-tty-gitlab/Makefile
+3-2net/rubygem-oauth-gitlab/Makefile
+3-0net/rubygem-oauth-tty-gitlab/distinfo
+2-0net/rubygem-oauth-tty-gitlab/pkg-descr
+1-0net/Makefile
+34-25 files

LLVM/project 1a864ballvm/lib/Target/RISCV RISCVFrameLowering.cpp, llvm/test/CodeGen/RISCV sifive-interrupt-frame-flags.ll

[RISCV] Mark SiFive CLIC epilogue instructions as frame-destroy (#218338)

SiFive CLIC interrupt epilogue instructions were incorrectly marked as
`FrameSetup`. This commit marks the restore sequence and final stack
swap as `FrameDestroy`.
DeltaFile
+30-0llvm/test/CodeGen/RISCV/sifive-interrupt-frame-flags.ll
+10-9llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+40-92 files

LLVM/project 9511dd7llvm/test/CodeGen/Mips llvm.sincos.f128.ll llvm.sincos.ll, llvm/test/CodeGen/X86 fp80-math-no-libcall-error.ll fp80-conv-libcalls.ll

RuntimeLibcalls: Fix wrongly typed x87/fp128 long double libcalls on x86 (#216979)

The x86 and default libcall sets gated the l-suffixed long double libm
functions on OS conditions rather than the long double format. This
incorrectly provided the f80 libcalls on targets whose long double is
not x87 (Windows-MSVC, UEFI, x86_64 Android), double-provided 
frexpl/ldexpl on musl, and provided the fp128 sincosl on targets using 
double as long double.

Gate the l-suffixed libm math on the long double format, mirroring the
earlier AArch64 fix: x87 targets get the _f80 calls, fp128 targets the _f128
calls, and double targets neither. The compiler-rt f80 helpers (__extendxftf2,
__fixxfti, __powixf2, ...) are keyed to the x86_fp80 IR type, not the long double
format, so they stay unconditional on x86.


Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+374-0llvm/test/CodeGen/X86/fp80-math-libcalls.ll
+0-359llvm/test/CodeGen/X86/finite-libcalls.ll
+0-266llvm/test/CodeGen/Mips/llvm.sincos.ll
+146-0llvm/test/CodeGen/X86/fp80-conv-libcalls.ll
+104-0llvm/test/CodeGen/X86/fp80-math-no-libcall-error.ll
+78-0llvm/test/CodeGen/Mips/llvm.sincos.f128.ll
+702-6254 files not shown
+771-65010 files

OpenBSD/src knzAexCusr.bin/tmux window-panes.c cmd-run-shell.c

   Tidy up args_make_commands reference counting to fix a memory leak, from
   Jeong, Heon.
VersionDeltaFile
1.67+4-4usr.bin/tmux/arguments.c
1.87+4-1usr.bin/tmux/cmd-if-shell.c
1.94+3-1usr.bin/tmux/cmd-run-shell.c
1.76+3-1usr.bin/tmux/cmd-command-prompt.c
1.5+2-1usr.bin/tmux/window-panes.c
+16-85 files