LLVM/project 6b6ca22 — clang/lib/Sema SemaDeclCXX.cpp

extract lambda to local var
DeltaFile
+16-17clang/lib/Sema/SemaDeclCXX.cpp
+16-171 files

LLVM/project 3293272 — flang/lib/Semantics check-data.cpp, flang/test/Semantics data28.f90

[flang][semantics] Reject DATA-style initializer on EXTERNAL/INTRINSIC (#222256)

An `entity-decl` carrying a legacy `/initialization/` (an extension) was silently
accepted, and the initializer dropped, when the name had already been
declared `EXTERNAL` or `INTRINSIC`:

```fortran
subroutine s
  external foo
  integer foo /1/   ! accepted, no initialization emitted
end subroutine
```

`DataChecker::Leave(const parser::EntityDecl &)` passed the value list to
`AccumulateDataInitializations` without checking the symbol's class, so the
initialization never reached the emitted code and no diagnostic was produced.
Reversing the two statements already errors, so the behaviour was also
order-dependent. For an intrinsic name that is not an unrestricted specific
function (`sum`), the accumulated value instead tripped

    [9 lines not shown]
DeltaFile
+36-0flang/test/Semantics/data28.f90
+10-1flang/lib/Semantics/check-data.cpp
+46-12 files

LLVM/project d08459d — orc-rt/include/orc-rt/support LockedAccess.h

[orc-rt] Mark LockedAccess's constructor as noexcept. (#230311)

The ORC runtime does not use exceptions for errors internally, so mark
this noexcept. In practice the mutex and lock types we use (STL mutexes
and locks) don't throw unless corrupted or misconfigured. If we ever
want to support locks whose acquisition can legitimately fail we'll need
an alternative Error-based representation of failure.
DeltaFile
+1-1orc-rt/include/orc-rt/support/LockedAccess.h
+1-11 files

LLVM/project f8f362d — llvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.cooperative.atomic-basic.ll

[AMDGPU] Use vector memory types for 64/128-bit cooperative atomics (#229501)

The 16x8B and 8x16B cooperative atomic intrinsics had integer memory
types (`i64`/`i128`) that didn't match their vector values, which broke
value tracking on the loaded value and could crash the compiler. This
patch uses the value type as the memory type and updates the selection
patterns to match. Codegen for existing cooperative atomics is
unchanged.
DeltaFile
+187-4llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-basic.ll
+2-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+189-62 files

GhostBSD/ports 40d7666 — lang/pypy Makefile, net-im/mu-conference Makefile

*/*: remove stale ports that are not built

These GhostBSD-only ports were not listed in SUBDIR, so poudriere never
built them, and nothing depends on them. Most were removed from
FreeBSD years ago and survived merges here.

Add MOVED entries for the ones that did not already have one.
DeltaFile
+0-5,310www/npm5/pkg-plist
+0-216net-mgmt/zabbix42-server/Makefile
+0-167lang/pypy/Makefile
+0-112net-im/mu-conference/Makefile
+0-97www/node8/Makefile
+0-93sysutils/condor/Makefile
+0-5,99532 files not shown
+11-6,61038 files

LLVM/project e0d351f — lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp ThreadPlanSingleThreadTimeout.cpp

Don't let the ThreadPlanSingleStepTimeout interrupt an already stopped process (#227898)

When the ThreadPlanSingleThreadTimeout timeout fires, first check
whether the process is stopped before sending the interrupt.

This is a simpler way to address the problem that was identified in:

https://github.com/llvm/llvm-project/pull/224272

The problem solved there is that if the stop processing is still going
on when the timer fires, we send the interrupt request event which gets
enqueued and then handled after the stop event processing has restarted
the inferior to continue the thread plan work.

That patch involved trying to figure out, when you receive the event,
whether it was stale or not. It was harder to reason about - and not all
the way right, though that probably could be fixed.

But when you get a stop event, we first set the private state to stopped

    [6 lines not shown]
DeltaFile
+12-6lldb/source/Target/ThreadPlanSingleThreadTimeout.cpp
+10-0lldb/source/Target/Process.cpp
+1-0lldb/include/lldb/Target/Process.h
+23-63 files

LLVM/project fbc316d — llvm/test/TableGen RuntimeLibcallEmitter-bad-system-library-entry-error.td RuntimeLibcallEmitter-library-dispatch.td, llvm/utils/TableGen/Basic RuntimeLibcallsEmitter.cpp

RuntimeLibcalls: Require system library members to be libraries

Every SystemRuntimeLibrary now lists only LibcallLibrary and LibraryRef
members, so the inline path that expanded unhomed RuntimeLibcallImpl members
directly into the system's block, including its SystemAvailableImpls
bitset, is dead. Remove it, and error on any member that is not a
library. The generated RuntimeLibcalls.inc is unchanged.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+118-108llvm/test/TableGen/RuntimeLibcallEmitter.td
+94-103llvm/test/TableGen/RuntimeLibcallEmitter-calling-conv.td
+18-117llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+12-50llvm/test/TableGen/RuntimeLibcallEmitter-multiple-impls.td
+3-21llvm/test/TableGen/RuntimeLibcallEmitter-library-dispatch.td
+15-6llvm/test/TableGen/RuntimeLibcallEmitter-bad-system-library-entry-error.td
+260-4056 files not shown
+278-41612 files

GhostBSD/ports a357b91 — deskutils/lazylibrarian pkg-plist, misc/trueos-handbook pkg-plist

*/*: remove obsolete ports

These ports came over from TrueOS and PC-BSD and have not been
maintained since 2017-2022. Nothing in the tree depends on them, and
the ones still listed in SUBDIR were being built for nothing.
DeltaFile
+0-564deskutils/lazylibrarian/pkg-plist
+0-311sysutils/trueos-utils-qt5/pkg-plist
+0-174misc/trueos-handbook/pkg-plist
+0-69sysutils/pc-diskmanager/pkg-plist
+0-67www/pc-webkitviewer/pkg-plist
+0-57misc/trueos-meta-hunspell/Makefile
+0-1,24278 files not shown
+20-2,23684 files

LLVM/project 77921a0 — clang/include/clang/Analysis CFG.h, clang/lib/Analysis CFG.cpp ReachableCode.cpp

[Analysis] Don't treat code after analyzer_noreturn calls as unreachable (#229577)

Since #150952, the CFG treats calls to functions attributed
'analyzer_noreturn' like calls to 'noreturn' functions, so
-Wunreachable-code reported the code following such a call as never
executed even though the call can return.

Record in CFGBlock whether a noreturn block ends in a real 'noreturn'
call or an 'analyzer_noreturn' call. The CFG keeps the code after an
'analyzer_noreturn' call as the alternate successor of the exit edge and
the reachability scan used by -Wunreachable-code follows it. All other
clients still treat the two kinds identically.

rdar://188741139
DeltaFile
+35-11clang/include/clang/Analysis/CFG.h
+28-12clang/lib/Analysis/ReachableCode.cpp
+38-0clang/test/Sema/warn-unreachable-analyzer-noreturn.c
+20-11clang/lib/Analysis/CFG.cpp
+19-0clang/test/Analysis/analyzer-noreturn.c
+18-0clang/test/Analysis/analyzer-noreturn-cfg-output.c
+158-346 files

LLVM/project 47e8159 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 fused-alt-fmul.ll

[SLP]Fix crash on fused alternate node with reuse shuffles

Size the vector type by the unique scalars, same as the opcode mask;
the reuse-shuffle vectorization factor made them mismatch.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/230303
DeltaFile
+89-0llvm/test/Transforms/SLPVectorizer/X86/fused-alt-fmul.ll
+1-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+90-22 files

LLVM/project 4319629 — llvm/test/CodeGen/NVPTX f16-instructions.ll frem-precise.ll, llvm/test/Transforms/ExpandIRInsts/NVPTX frem.ll

[NVPTX] Use ExpandIRInsts for frem (#224141)

Our current expansion is not sufficiently accurate.
DeltaFile
+489-0llvm/test/Transforms/ExpandIRInsts/NVPTX/frem.ll
+113-61llvm/test/CodeGen/NVPTX/frem.ll
+64-33llvm/test/CodeGen/NVPTX/f16x2-instructions.ll
+38-58llvm/test/CodeGen/NVPTX/f32x2-instructions.ll
+84-0llvm/test/CodeGen/NVPTX/frem-precise.ll
+22-25llvm/test/CodeGen/NVPTX/f16-instructions.ll
+810-1773 files not shown
+824-2209 files

LLVM/project a1000a7 —

[LazyMachineBlockFrequencyInfo] Fix link with MSVC and LLVM_BUILD_LLVM_DYLIB_VIS=ON (#228320)
DeltaFile
+0-00 files

LLVM/project e3d2755 — clang/include/clang/CIR/Dialect/Builder CIRBaseBuilder.h, clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp

[CIR] Pass x87 long double vectors on x86_64

Vectors of x87 long double now go through x86_64 calling-convention
lowering instead of hitting NYI. The ABI library sizes their elements at
128 bits like clang does, so the signatures match classic codegen.

Unions are still moved as a value of their storage type, and a long
double stores only 10 of its 16 bytes. So a union holding an x87 value
next to another member stays NYI unless it's a plain long double and the
other members fit in those 10 bytes. That also stops a silent miscompile
of unions like `union { long double ld; char c[16]; }`.

Assisted-by: Cursor / Claude Opus 5.5
DeltaFile
+291-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-x87-vector.c
+102-12clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
+93-14clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+66-0clang/test/CIR/CodeGen/vector-logical-long-double.cpp
+21-4clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
+18-0clang/test/CIR/Transforms/abi-lowering/x86_64-vector.cir
+591-301 files not shown
+602-357 files

LLVM/project f8d6f8b — llvm/test/MC/RISCV option-invalid.s option-arch.s

[nspr] initial commit
DeltaFile
+25-0llvm/test/MC/RISCV/option-arch.s
+14-0llvm/test/MC/RISCV/option-invalid.s
+39-02 files

LLVM/project 4c668a3 — lldb/source/Core CMakeLists.txt ModuleList.cpp, lldb/source/Plugins/TypeSystem/Clang CMakeLists.txt TypeSystemClang.cpp

[lldb] Set the default clang module cache path in TypeSystemClang (#229817)

`ModuleListProperties` calls
`clang::driver::Driver::getDefaultModuleCachePath`, so `lldbCore` links
`clangDriver`, which drags in `clangAST` and most of LLVM via static
initializers. lldb-server only links `lldbCore` and links everything
else regardless.

Set the default from `TypeSystemClang::Initialize` instead. Every tool
that uses the clang module cache registers TypeSystemClang.
DeltaFile
+7-0lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+0-6lldb/source/Core/ModuleList.cpp
+0-3lldb/source/Core/CMakeLists.txt
+1-0lldb/source/Plugins/TypeSystem/Clang/CMakeLists.txt
+8-94 files

LLVM/project 974e95f — llvm/include/llvm/CodeGen LazyMachineBlockFrequencyInfo.h, llvm/lib/CodeGen LazyMachineBlockFrequencyInfo.cpp

[CodeGen] Force compiler to generate default destructor for class (#229944)

The LazyMachineBlockFrequencyInfoPass has global visibility so in order
for it to be linkable with MSVC, we need to explicitly tell the compiler
to emit its definition.
DeltaFile
+3-0llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
+1-0llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
+4-02 files

LLVM/project 3ebe8ba — llvm/include/llvm/IR RuntimeLibcallsImpl.td RuntimeLibcalls.td

RuntimeLibcalls: Organize functions into libraries

Associate runtime functions with the library which provides them. Add
shared LibcallLibrary defs, like compiler-rt, libm and libc, along with
OS and target specific variants, and replace each target's hand-listed
SystemRuntimeLibrary body with references to them. The resulting libcall
sets are unchanged.

Targets which differ from the shared libraries opt out of individual
functions, e.g. AVR has no sin, cos or sincos, x86 has no fp128 sincosl,
and PPC replaces some f128 compiler-rt helpers. Libraries which should
not merge with the generic variants are Isolated, like arm64ec's
compiler-rt and SPIRV's libc.

Co-authored-by: Claude Opus <noreply at anthropic.com>
DeltaFile
+477-298llvm/include/llvm/IR/RuntimeLibcalls.td
+0-1llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+477-2992 files

LLVM/project 92ab900 — clang/lib/CIR/CodeGen CIRGenCoroutine.cpp, clang/test/CIR/CodeGenCoroutines coro-fallthrough.cpp

[CIR] Destroy coroutine body locals before the implicit co_return (#229743)

When a coroutine body flows off its end, CIRGen calls the promise's
`return_void()` while the local variables of the body are still alive,
and destroys them afterwards.

Flowing off the end of the function-body is equivalent to a `co_return`
with no operand. Control only flows off the end of the function-body
when it leaves the body's block, and leaving the block destroys the
block's automatic variables.

This patch wraps the body in a `RunCleanupsScope`, so the body's
cleanups are popped when the body ends, before the fall-through handler
is emitted. The body's `cir.cleanup.scope` now ends with a `cir.yield`,
and `return_void()` and `cir.co_return` follow it.

---------

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+193-0clang/test/CIR/CodeGenCoroutines/coro-fallthrough.cpp
+10-2clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
+203-22 files

GhostBSD/ports 11711cd — cad/PrusaSlicer Makefile

cad/PrusaSlicer: add ffmpeg4 as a runtime dependency for libavcodec support
DeltaFile
+3-0cad/PrusaSlicer/Makefile
+3-01 files

GhostBSD/ports 98611f6 — graphics/aoi Makefile

graphics/aoi: pin JDK version to avoid conflicts with java.mk default
DeltaFile
+2-0graphics/aoi/Makefile
+2-01 files

LLVM/project 732b46f — lldb/source/API SBData.cpp SBProcessInfo.cpp, lldb/unittests/Utility StringPoolTest.cpp

[lldb] Intern SB API strings in the system pool (#229901)

Intern strings returned by SB classes that do not belong to a debugger
in the system pool. Rename StringPool::GetSystem to GetSystemPool and
add StringPoolRef::InternNonEmpty for getters that map an empty string
to nullptr. SBEnvironmentTest now initializes the SB API, as the system
pool is only valid between Initialize and Terminate.
DeltaFile
+31-37lldb/source/API/SBPlatform.cpp
+9-7lldb/source/API/SBLaunchInfo.cpp
+6-5lldb/source/API/SBEnvironment.cpp
+9-1lldb/unittests/Utility/StringPoolTest.cpp
+5-4lldb/source/API/SBProcessInfo.cpp
+3-5lldb/source/API/SBData.cpp
+63-599 files not shown
+93-7115 files

OpenZFS/src 5d1ed14 — module/zfs zil.c

Bail out of zil_create() when the pool suspends

zil_create() waits with txg_wait_synced(), a void wrapper around a
plain wait that cannot report a suspend. When the pool suspends while
it waits, the fsync() that got there does not return until the pool
resumes.

The rest of the commit path already handles this. zil_commit_flags()
and zil_commit_writer_stall() wait with TXG_WAIT_SUSPEND, call
zil_crash() on ESHUTDOWN and hand EIO back to the waiters.
zil_create() and zil_commit_activate_saxattr_feature() were left on the
old wait, so a suspend caught in either one still hangs.

Use the suspend-aware wait in all three places and return the failure.
zil_process_commit_list() already has a NULL-lwb path that signals the
nolwb waiters with the error, and its comment already says an ESHUTDOWN
there means zil_crash() was called, so the failure lands somewhere that
expects it.


    [11 lines not shown]
DeltaFile
+34-11module/zfs/zil.c
+34-111 files

GhostBSD/ports ba73c62 — math/dune-fem Makefile

math/dune-fem: switch dependency from arpack-ng at openmpi to arpack-ng at mpich
DeltaFile
+1-1math/dune-fem/Makefile
+1-11 files

OpenZFS/src b38e7a4 — module/zfs dmu_objset.c

Bail out of the objset upgrade when the pool suspends

The two objset upgrade callbacks end with txg_wait_synced(), a void
wrapper around a plain wait that cannot report a suspend. When the
pool suspends during that wait, the upgrade taskq thread stays blocked
until the pool resumes. So does dmu_objset_disown(), which calls
dmu_objset_upgrade_stop(). That waits for a running upgrade task to
finish and then waits for a txg itself.

Give all three waits TXG_WAIT_SUSPEND. The callbacks return EAGAIN,
which dmu_objset_upgrade_task_cb() records in os_upgrade_status.
zfs_ioc_userspace_upgrade() and zfs_ioc_id_quota_upgrade() return that
status, and libzfs reports EAGAIN as a suspended pool.
dmu_objset_upgrade_stop() ignores the result, as it ignored the old
wait.

On master, fstests generic/753 in the eio group hangs with the pool
suspended and z_upgrade blocked here:


    [10 lines not shown]
DeltaFile
+8-3module/zfs/dmu_objset.c
+8-31 files

GhostBSD/ports b80a06b — math/dune-pdelab Makefile

math/dune-pdelab: switch dependency from arpack-ng at openmpi to arpack-ng at mpich
DeltaFile
+1-1math/dune-pdelab/Makefile
+1-11 files

OpenZFS/src b098c60 — module/zfs spa_misc.c, tests/runfiles common.run

Do not wait forever in spa_vdev_state_exit() on a suspended pool

spa_vdev_state_exit() waits for the txg to sync whenever it is given a
vdev, so that zpool(8) commands are synchronous. If the pool suspends
during that wait, the txg never syncs and the command never returns.

A pool that is already suspended does not get that far.
ZFS_IOC_VDEV_SET_STATE refuses it with EAGAIN before vdev_online()
runs, and zfs_ioc_clear() passes NULL instead of the vdev when
spa_suspended() is true. The hang needs the pool to suspend after
those checks. That happens when the state change's own sync fails,
and when a zpool clear races a new suspend, which generic/753 in the
eio group caught on an encrypted mirror:

    zpool     D  357s   txg_wait_synced <- spa_vdev_state_exit
                        <- zfs_ioc_clear
    txg_sync  D  359s
    pool      SUSPENDED


    [24 lines not shown]
DeltaFile
+103-0tests/zfs-tests/tests/functional/failmode/failmode_vdev_state.ksh
+10-2module/zfs/spa_misc.c
+2-1tests/runfiles/common.run
+1-0tests/zfs-tests/tests/Makefile.am
+116-34 files

OpenZFS/src 2a96397 — module/zfs dmu_tx.c, tests/runfiles linux.run

Stop DMU_TX_NOWAIT callers spinning on a suspended pool

On a suspended pool, dmu_tx_assign() gives a DMU_TX_WAIT caller EIO
under failmode=continue and blocks it under failmode=wait. A
DMU_TX_NOWAIT caller gets ERESTART in both modes, and every such caller
answers it the same way:

        if (error == ERESTART) {
                waited = B_TRUE;
                dmu_tx_wait(tx);
                dmu_tx_abort(tx);
                goto top;
        }

dmu_tx_assign() sets tx_break_on_suspend for any caller without
DMU_TX_SUSPEND, so this dmu_tx_wait() waits with TXG_WAIT_SUSPEND and
returns as soon as it sees the suspended pool. It returns void, so the
caller retries at once, and the thread spins in the kernel until the
pool resumes. dmu_tx_assign() guards its own retry against this by

    [26 lines not shown]
DeltaFile
+79-0tests/zfs-tests/tests/functional/failmode/failmode_nowait_wait.ksh
+14-5module/zfs/dmu_tx.c
+4-0tests/runfiles/linux.run
+1-0tests/zfs-tests/tests/Makefile.am
+98-54 files

GhostBSD/ports 563b157 — math/dune-vtk Makefile

math/dune-vtk: switch dependency from arpack-ng at openmpi to arpack-ng at mpich
DeltaFile
+1-1math/dune-vtk/Makefile
+1-11 files

GhostBSD/ports a9f9c8b — science/chrono Makefile

devel/chrono: added VEHICLE_RUN_DEPENDS
DeltaFile
+2-0science/chrono/Makefile
+2-01 files

LLVM/project 9f0753e — llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/test/CodeGen/X86 mask-beforefirst.ll

[DAG] Handle widened step vectors in expandGetActiveLaneMask

On AVX512 getLegalMaskAndStepVector will need to widen the step vector type. Handle this in expandGetActiveLaneMask, so we don't crash on AVX512 which widens e.g. v8i1 -> v16i1. We don't actually use Mask, it's just a dummy poison value to work out what type the final mask result should be.
DeltaFile
+65-1llvm/test/CodeGen/X86/mask-beforefirst.ll
+6-3llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+71-42 files