LLVM/project 12b0272clang/include/clang/Basic Attr.td AttrDocs.td, clang/lib/CodeGen/Targets AMDGPU.cpp

clang/AMDGPU: Respect __launch_bounds__ attribute (#215615)

Currently the HIP headers manually implement this with a
macro setting amdgpu attributes, and the proper clang attribute
is silently ignored. Directly map the proper attribute into
the target IR attributes. The first argument sets
"amdgpu-flat-work-group-size" and the second  (reinterpreted by HIP
as minimum waves per EU) sets "amdgpu-waves-per-eu". An explicit
amdgpu_flat_work_group_size / amdgpu_waves_per_eu attribute takes
precedence. This matches the launch_bounds macro in the HIP headers,
which can now be dropped.

The 3rd maxclusterrank argument is only handled for NVPTX, so restrict
the sm_90 arch check to NVPTX targets and ignore the third argument on
other targets.

Fixes #91468

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+68-0clang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
+43-0clang/include/clang/Basic/AttrDocs.td
+30-1clang/lib/CodeGen/Targets/AMDGPU.cpp
+17-6clang/lib/Sema/SemaDeclAttr.cpp
+16-0clang/test/SemaCUDA/launch_bounds_amdgpu.cu
+1-4clang/include/clang/Basic/Attr.td
+175-111 files not shown
+176-137 files

LLVM/project bb81031mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp, mlir/lib/Dialect/Linalg/Transforms ElementwiseOpFusion.cpp

[MLIR][Linalg] Recompute linalg.broadcast dimensions when flattening (#213641)

per discussion in
[211203](https://github.com/llvm/llvm-project/pull/211203), @Nujaa found
the following case being rejected currently:
```
func.func @broadcast_rank0_tensor(%arg0: tensor<i32>, %arg1: tensor<32x2xi32>) -> tensor<32x2xi32> {
  %0 = linalg.broadcast ins(%arg0 : tensor<i32>) outs(%arg1 : tensor<32x2xi32>) dimensions = [0, 1]
  return %0 : tensor<32x2xi32>
}

module attributes {transform.with_named_sequence} {
  transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
    %0 = transform.structured.match interface{LinalgOp} in %arg1 : (!transform.any_op) -> !transform.any_op
    %flattened = transform.structured.flatten_elementwise %0
      : (!transform.any_op) -> !transform.any_op
    transform.yield
  }
}

    [21 lines not shown]
DeltaFile
+45-2mlir/test/Dialect/Linalg/flatten-elementwise.mlir
+21-0mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
+8-0mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+74-23 files

LLVM/project edc3a42llvm/docs DynamicDebugging.md, llvm/include/llvm/Transforms/Utils DynamicDebugging.h

[dyndbg][LLVM] Implement dynamic debugging support (#194854)

This patch adds support to LLVM to prepare a module for dynamic debugging.
`prepareForDynamicDebugging` modifies the input module (intended to be the
"optimized" module) and returns a modified clone (intended to be the
"unoptimized" module).

The (to be) optimized module holds global data referred to by both modules, and
all calls in the (to be) unoptimized module are to the optimized module
functions. To facilitate this the optimized module is modified, adding
external-linkage aliases for local symbols.

For more detail see RFC https://discourse.llvm.org/t/90113 and documentation at
llvm/docs/DynamicDebugging.md.

In later patches Clang will use this utility to implement ahead of time dynamic
debugging (compiling both optimized and unoptimized modules fully), though
additional modes may be supported in the future.
DeltaFile
+572-0llvm/unittests/Transforms/Utils/DynamicDebuggingTest.cpp
+176-0llvm/lib/Transforms/Utils/DynamicDebugging.cpp
+64-0llvm/include/llvm/Transforms/Utils/DynamicDebugging.h
+2-0llvm/docs/DynamicDebugging.md
+1-0llvm/unittests/Transforms/Utils/CMakeLists.txt
+1-0llvm/lib/Transforms/Utils/CMakeLists.txt
+816-06 files

LLVM/project 21f78d9libcxx/test/std/ranges/range.factories/range.istream.view ctor.pass.cpp

[libc++][ranges] Fix the LWG 3568 test for `basic_istream_view` (#215589)

The previous test was dereferencing `begin()` iterator on empty view
which is UB, because `begin() == end()`.

A new test case was suggested in a post-merge feedback in #193891, which
verifies LWG3568 through constant evaluation. Such a `constexpr`
`basic_istream_view` variable can only be created if it is completely
initialized, including its exposition-only _`value_`_ member.

The existing test case is changed to use a non-empty stream and a
testing class type for which `operator>>` is no-op. The state of the
class object stored in `basic_istream_view` is unchanged even after the
initial `operator>>` call.

This avoids dereferencing a past-the-end iterator while testing LWG3568.
DeltaFile
+19-4libcxx/test/std/ranges/range.factories/range.istream.view/ctor.pass.cpp
+19-41 files

LLVM/project 0df456c.github/workflows libcxx-benchmark-cron.yml, libcxx/utils/ci/lnt README.md

[libc++] Trigger the benchmark-request job more often (#216003)

With the test suite taking under 1h to complete, it makes sense to
trigger at least every 30 minutes so we don't leave available capacity
unused.
DeltaFile
+3-3libcxx/utils/ci/lnt/README.md
+2-2.github/workflows/libcxx-benchmark-cron.yml
+5-52 files

LLVM/project 4222a69clang Maintainers.md

[clang][doc] Update my entries to use my company email (#215816)
DeltaFile
+2-2clang/Maintainers.md
+2-21 files

FreeBSD/ports 95f9a68japanese/fcitx5-anthy Makefile, korean/fcitx5-hangul Makefile

*/*: Switch to USES=kde

All these ports use only the ECM module shipped with KDE Frameworks.
ECM from Frameworks 5 has been replaced by Frameworks 6 counterpart
a while ago. While here, drop runtime dependency on ECM.

Differential:   D58578
Reviewed by:    adridg, arrowd, jhale
DeltaFile
+3-2x11/xcb-imdkit/Makefile
+3-2textproc/fcitx5/Makefile
+3-2textproc/fcitx5-lua/Makefile
+3-2textproc/fcitx5-gtk/Makefile
+3-2korean/fcitx5-hangul/Makefile
+3-2japanese/fcitx5-anthy/Makefile
+18-1212 files not shown
+46-3218 files

FreeBSD/ports 0be5316audio/zrythm Makefile

audio/zrythm: Switch to USES=kde

Differential:   D58578
Reviewed by:    adridg, arrowd, jhale
DeltaFile
+3-4audio/zrythm/Makefile
+3-41 files

FreeBSD/ports ee319c4Mk/Uses kde.mk

Uses/kde.mk: Use the latest KDE Frameworks if the version is omitted

Diffrential:    D58578
Reviewed by:    adridg, arrowd, jhale
DeltaFile
+17-8Mk/Uses/kde.mk
+17-81 files

FreeBSD/ports 15e1dafMk/Uses kde.mk

Uses/kde.mk: Reformat after latest change
DeltaFile
+66-66Mk/Uses/kde.mk
+66-661 files

LLVM/project 4a2236dclang/lib/CodeGen/Targets AMDGPU.cpp

Typo fix

Co-authored-by: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
DeltaFile
+1-1clang/lib/CodeGen/Targets/AMDGPU.cpp
+1-11 files

LLVM/project c8027b4libcxx/include/__algorithm pstl.h, libcxx/include/__pstl/backends serial.h

[libc++][pstl] Implementation of parallel std::search_n() based on __parallel_find() (#214069)

This PR implements a parallel version of `std::search_n()` based on
`__parallel_find()`.

The algorithm crops the input range to a range where a potential match
can start and runs a chunked parallel find on the cropped range.
Inside each chunk potential matches are looked for and the first one
found is returned.
Since it's based on `__parallel_find()`, the algorithm supports early
termination.
DeltaFile
+164-0libcxx/test/std/algorithms/alg.nonmodifying/alg.search/pstl.search_n_pred.pass.cpp
+160-0libcxx/test/std/algorithms/alg.nonmodifying/alg.search/pstl.search_n.pass.cpp
+102-0libcxx/include/__pstl/cpu_algos/search_n.h
+44-0libcxx/include/__algorithm/pstl.h
+32-0libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp
+15-0libcxx/include/__pstl/backends/serial.h
+517-09 files not shown
+563-015 files

LLVM/project 5d8ba1cllvm/lib/Target/AMDGPU SIPreEmitPeephole.cpp, llvm/test/CodeGen/AMDGPU insert-skip-from-vcc.mir preemit-peephole-scc-liveness-issue215745.ll

[AMDGPU] Fix si-pre-emit-peephole to preserve S_AND when SCC is alive (#215829)

The optimization in si-pre-emit-peephole that removes S_AND_B64 after
V_CMP instructions does not check if the implicit SCC def is alive. This
causes miscompiles when the SCC value is used by subsequent
instructions.

Fixes #215745
DeltaFile
+87-0llvm/test/CodeGen/AMDGPU/preemit-peephole-scc-liveness-issue215745.ll
+19-0llvm/test/CodeGen/AMDGPU/insert-skip-from-vcc.mir
+4-2llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp
+110-23 files

OPNSense/plugins 3bff52fwww/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms general.xml, www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy Caddy.xml

www/caddy: Add proxy protocol sources, Fixes: https://github.com/opnsense/plugins/issues/5583
DeltaFile
+12-0www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/general.xml
+6-0www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Config/Caddyfile
+6-0www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
+24-03 files

NetBSD/pkgsrc-wip ef247abvictorialogs-vlagent Makefile, victorialogs-vlogscli Makefile

victorialogs-*: use PKGBASE

Factor out the name of the program by using PKGBASE.
More resistant to copypastos for packaging of other VictoriaLogs
components.
DeltaFile
+2-2victorialogs-vlogscli/Makefile
+2-2victorialogs-vlagent/Makefile
+4-42 files

LLVM/project cad2a3flibcxx/test/extensions/posix xopen_source.gen.py

[libcxx][FreeBSD] Mark unsupported only in XOPEN=500

FreeBSD hides all C99 definition when -D_XOPEN_SOURCE=500. As a result,
we can turn on these tests if we have definition higher than 500.
DeltaFile
+6-4libcxx/test/extensions/posix/xopen_source.gen.py
+6-41 files

LLVM/project e678d9ellvm/lib/Target/LoongArch CMakeLists.txt LoongArch.h, llvm/utils/gn/secondary/llvm/lib/Target/LoongArch BUILD.gn

[LoongArch][WIP] Late branch opt
DeltaFile
+115-0llvm/lib/Target/LoongArch/LoongArchLateBranchOpt.cpp
+8-0llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
+3-0llvm/lib/Target/LoongArch/LoongArchFloat32InstrInfo.td
+2-0llvm/lib/Target/LoongArch/LoongArch.h
+1-0llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
+1-0llvm/lib/Target/LoongArch/CMakeLists.txt
+130-06 files

NetBSD/pkgsrc-wip 8c6fba9victorialogs DESCR

victorialogs: Describe what victoria-logs is
DeltaFile
+1-1victorialogs/DESCR
+1-11 files

LLVM/project d14a4f3clang/lib/CodeGen/Targets Sparc.cpp, clang/test/CodeGen/Sparc sparcv9-vaarg.c

[Sparc][clang] `_Complex char` in c-variadic call is right-adjusted (#215015)

Aggregates are left-adjusted, but GCC right-adjusts complex values
within the 8-byte slot

https://godbolt.org/z/as3PevMGd

```c
#include <stdarg.h>

_Complex char complex_char_sink;

void get_complex_char(va_list *args) {
  complex_char_sink = va_arg(*args, _Complex char);
}

struct ManualComplexChar { char re; char im };

struct ManualComplexChar manual_complex_char_sink;

    [29 lines not shown]
DeltaFile
+8-7clang/test/CodeGen/Sparc/sparcv9-vaarg.c
+4-1clang/lib/CodeGen/Targets/Sparc.cpp
+12-82 files

NetBSD/pkgsrc-wip f0c45c4victorialogs DESCR, victorialogs-vlagent DESCR

victorialogs: Extend description

Based on README.md.
DeltaFile
+4-2victorialogs/DESCR
+4-2victorialogs-vlogscli/DESCR
+4-2victorialogs-vlagent/DESCR
+12-63 files

LLVM/project 6355d80clang/lib/CodeGen BackendUtil.cpp, llvm/include/llvm/Analysis RuntimeLibcallInfo.h

CodeGen: Remove TargetOptions::FloatABIType

This is now fully replaced with the "float-abi" module flag.
If the module flag is not present, the default is computed
from the triple. Consumers are updated to read the module flag.

RuntimeLibraryAnalysis now defers analysis until run() on a Module,
instead of during the pass constructor as before. This requires copying
all of the remaining relevant TargetOptions so they are available
when the module is seen.

Unfortunately, ARM still depends on TargetOptions for determining
the float-abi. -target-abi=aapcs16 still changes the default float-abi,
but an explicit module flag wins.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+45-0llvm/test/LTO/ARM/float-abi-module-flag.ll
+19-17llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
+15-20llvm/lib/Target/ARM/ARMTargetMachine.cpp
+28-0llvm/test/Transforms/Util/DeclareRuntimeLibcalls/float-abi-module-flag.ll
+5-18llvm/lib/Analysis/RuntimeLibcallInfo.cpp
+3-14clang/lib/CodeGen/BackendUtil.cpp
+115-6923 files not shown
+174-12629 files

LLVM/project 2fac20dllvm/lib/CodeGen CommandFlags.cpp

Remove opt description change
DeltaFile
+1-3llvm/lib/CodeGen/CommandFlags.cpp
+1-31 files

LLVM/project 697babbllvm/lib/CodeGen CommandFlags.cpp, llvm/test/CodeGen/ARM float-abi-synthesize-flag.ll

Error on -float-abi conflicting with the "float-abi" module flag
DeltaFile
+17-5llvm/lib/CodeGen/CommandFlags.cpp
+6-2llvm/test/CodeGen/ARM/float-abi-synthesize-flag.ll
+23-72 files

NetBSD/pkgsrc-wip 981d170victorialogs Makefile.common

victorialogs: vlagent uses Makefile.common too
DeltaFile
+1-0victorialogs/Makefile.common
+1-01 files

NetBSD/pkgsrc-wip 3e9ea48victorialogs-vlagent PLIST DESCR

victorialogs-vlagent: Import vlagent-1.52.0

VictoriaLogs is open source user-friendly database for logs from
VictoriaMetrics.

This package contains vlagent, an agent for collecting logs from
various sources and storing them in VictoriaLogs.
DeltaFile
+13-0victorialogs-vlagent/Makefile
+5-0victorialogs-vlagent/DESCR
+2-0victorialogs-vlagent/PLIST
+20-03 files

LLVM/project f532c2dflang/lib/Optimizer/CodeGen BoxedProcedure.cpp, flang/test/Fir boxproc-execstack-module-flag.fir

[CodeGen] Take the executable stack from a module flag (#215152)

AsmPrinter marked `.note.GNU-stack` executable whenever the module had a
use of `llvm.init.trampoline`. This was not compliant with the
documentation for the function, which causes regressions in Julia.
Instead read a new `"executable-stack"` module flag, so that the request
comes from the frontend that emitted the code rather than from scanning
for an intrinsic and auto-magically (and wrongly) guessing. Update the
documentation to be even more clear about this implementation's
expectations (which matches gcc's abilities for the same).

Frontends generating code that needs an executable stack now have to set
the flag for that purpose. For example, flang will do so from
BoxedProcedurePass when it emits a stack based trampoline; the
`-fsafe-trampoline` runtime pool does not need one (nor was the custom
runtime intrinsics really necessary for `-fsafe-trampoline`, since the
existing intrinsic was already defined to support that use case too).

Fixes a regression caused by #151754, which introduced new behavior onto

    [4 lines not shown]
DeltaFile
+113-0flang/test/Fir/boxproc-execstack-module-flag.fir
+46-1flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
+29-0llvm/test/CodeGen/X86/execstack-module-flag.ll
+18-4llvm/docs/LangRef.md
+8-7llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+4-4llvm/test/CodeGen/RISCV/rv64-trampoline.ll
+218-164 files not shown
+229-1910 files

LLVM/project 58e4198lldb/source/Commands CommandObjectCommands.cpp, lldb/test/API/commands/command/script/add TestAddParsedCommand.py test_commands.py

[lldb] Fix crash when adding a python ParsedCommand (#215807)

The expected result of `ParsedCommand.get_args_definition` is a List of
Lists and should not crash when it is not the case.
DeltaFile
+13-0lldb/test/API/commands/command/script/add/test_commands.py
+5-0lldb/test/API/commands/command/script/add/TestAddParsedCommand.py
+1-0lldb/source/Commands/CommandObjectCommands.cpp
+19-03 files

OPNSense/src 49721cdlib/libpfctl libpfctl.c, sbin/pfctl pf_print_state.c

pf: rule label patch was merged from a wrong version

PR: https://forum.opnsense.org/index.php?topic=52351.0
DeltaFile
+1-1sbin/pfctl/pf_print_state.c
+1-1lib/libpfctl/libpfctl.c
+2-22 files

FreeBSD/src b54dcb8lib/libc/tests/gen limits_test.c

libc/tests: Add assertions for BOOL_WIDTH, BOOL_MAX, and BITINT_MAXWIDTH

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2352
DeltaFile
+6-0lib/libc/tests/gen/limits_test.c
+6-01 files

FreeBSD/src ca1c1ecsys/powerpc/include _limits.h

sys/limits.h: Fix typo

Reviewed by:    fuz
Approved by:    fuz (mentor)
MFC after:      1 month
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2352
DeltaFile
+1-1sys/powerpc/include/_limits.h
+1-11 files