LLVM/project a8be9a5flang/include/flang/Semantics semantics.h, flang/lib/Lower PFTBuilder.cpp

[flang] Do not branch to a FORMAT statement from an assigned GO TO (#217220)

Label analysis already classifies which labeled statements may be named
by a statement that branches. Record the positions of those statements
in the semantics context and consult it when lowering records the
targets of an assigned GO TO, so that a FORMAT statement is not given a
target block.

A GO TO whose variable holds only a format label now reaches the
run-time error instead of branching into the FORMAT statement.

Co-Authored-By: Claude

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+78-0flang/test/Lower/assigned-goto-format-target.f90
+55-0flang/test/Lower/assigned-goto-labeled-end.f90
+24-4flang/lib/Semantics/resolve-labels.cpp
+19-5flang/lib/Lower/PFTBuilder.cpp
+14-0flang/include/flang/Semantics/semantics.h
+6-0flang/test/Semantics/assign07.f90
+196-92 files not shown
+201-128 files

FreeBSD/ports 5bfc1e0www/immich Makefile

www/immich: Fix the built-in database backup

immich looks for pg_dump in a path that does not exist, and the port did not
depend on a PostgreSQL client at all.  The nightly backup job therefore failed
with ENOENT on every installation while the web interface reported the feature
as enabled.  The version range follows the check in the service itself,
PostgreSQL 14 to 18.

Sponsored by:   Netzkommune GmbH
DeltaFile
+7-1www/immich/Makefile
+7-11 files

LLVM/project 145f144clang/test/SemaCXX microsoft-constexpr.cpp

[clang][test] Don't use driver in microsoft-constexpr test (#218426)

No reason to use the driver here.
DeltaFile
+2-2clang/test/SemaCXX/microsoft-constexpr.cpp
+2-21 files

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

[AMDGPU] Combine redundant ballot intrinsic calls

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.

    [2 lines not shown]
DeltaFile
+448-0llvm/test/CodeGen/AMDGPU/redundant-ballot-reads.ll
+170-5llvm/lib/Target/AMDGPU/AMDGPUUniformIntrinsicCombine.cpp
+618-52 files

LLVM/project b5240b8clang/lib/Lex PPDirectives.cpp Preprocessor.cpp, clang/lib/Sema SemaCodeComplete.cpp

[Sema] [Modules] Remove unrelated module partitions from suggestion list (#187657)

This PR removes module partitions that don't belong to the current
file's module from the list of suggested module imports in the code
completion, so that it contains only primary modules or partitions
directly relevant to the declared primary module.

Partially addresses clangd/clangd#2622.
DeltaFile
+41-0clang/lib/Sema/SemaCodeComplete.cpp
+26-0clang/test/CodeCompletion/module-partitions.cpp
+1-1clang/lib/Lex/Preprocessor.cpp
+1-0clang/lib/Lex/PPDirectives.cpp
+69-14 files

LLVM/project 20c2216libc/test/src/math/smoke CMakeLists.txt

nit
DeltaFile
+3-3libc/test/src/math/smoke/CMakeLists.txt
+3-31 files

LLVM/project 8964a26libc/test/src/math/smoke fabsf128_test.cpp copysignf128_test.cpp

nit
DeltaFile
+2-2libc/test/src/math/smoke/CMakeLists.txt
+1-1libc/test/src/math/smoke/fabsf128_test.cpp
+1-1libc/test/src/math/smoke/copysignf128_test.cpp
+4-43 files

LLVM/project dd82a72libc/src/__support/FPUtil dyadic_float.h CMakeLists.txt, libc/src/__support/macros/properties types.h

[libc] Float80 Emulation in LLVM libc (#214447)

Continued from https://github.com/llvm/llvm-project/pull/211350

---------

Co-authored-by: OverMighty <its.overmighty at gmail.com>
DeltaFile
+112-0libc/test/src/__support/FPUtil/float80_test.cpp
+103-0libc/src/__support/FPUtil/float80.h
+18-0libc/src/__support/FPUtil/CMakeLists.txt
+8-5libc/src/__support/FPUtil/dyadic_float.h
+12-0libc/test/src/__support/FPUtil/CMakeLists.txt
+10-0libc/src/__support/macros/properties/types.h
+263-53 files not shown
+272-79 files

LLVM/project 46c5d02libc/src/__support/FPUtil CMakeLists.txt float80.h, libc/test/src/__support/FPUtil float80_test.cpp

[libc] Add Operator Overloads for Float80 (#214493)

stacked on https://github.com/llvm/llvm-project/pull/214447
DeltaFile
+53-0libc/src/__support/FPUtil/float80.h
+43-0libc/test/src/__support/FPUtil/float80_test.cpp
+1-0libc/src/__support/FPUtil/CMakeLists.txt
+97-03 files

FreeBSD/ports 79c3aebdevel/py-hologram Makefile, devel/py-minimal-snowplow-tracker Makefile

Update patmaddox maintainer email

Approved by:     dch (mentor implicit)
Closes:          https://github.com/freebsd/freebsd-ports/pull/566
DeltaFile
+1-1textproc/ox-gfm.el/Makefile
+1-1devel/rust-script/Makefile
+1-1devel/rust-mode/Makefile
+1-1devel/py-tree-sitter/Makefile
+1-1devel/py-minimal-snowplow-tracker/Makefile
+1-1devel/py-hologram/Makefile
+6-610 files not shown
+16-1616 files

LLVM/project 5e2a958clang/lib/Serialization ASTReaderDecl.cpp, clang/test/Modules pr217858.cppm

[C++20] [Modules] Merge lambda where the merge definition data is merged before the primary one (#218574)

Close https://github.com/llvm/llvm-project/issues/217858

The crash triggers on the assertion:

```C++
assert(!DD.IsLambda && !MergeDD.IsLambda && "faked up lambda definition?");
```

where DD.IsLambda is false and MergeDD.IsLambda is true. This is kinda
surprising. But this turns out to be real for the example.

```C++
export template <class Callback> auto make_closure(Callback &cb) {
  return [&cb](auto &arg) noexcept(noexcept(cb(arg))) { cb(arg); };
}
export template <class Callback, class Arg>
void for_each(Callback &&cb, Arg &arg)

    [14 lines not shown]
DeltaFile
+56-0clang/test/Modules/pr217858.cppm
+21-1clang/lib/Serialization/ASTReaderDecl.cpp
+77-12 files

LLVM/project e957ac5bolt/lib/Target/RISCV RISCVMCPlusBuilder.cpp, bolt/test/RISCV call-link-register.s

[BOLT][RISCV] Keep the link register when rewriting a call (#218408)

FixRISCVCallsPass rewrites an auipc/jalr call pair into a PseudoCALL,
which always links through ra. That is wrong for the machine outliner:
it calls an outlined function with "call t0, func" and the callee
returns with "jr t0", so after the rewrite the callee returns to
whatever t0 happens to hold.

Read the link register off the instruction being replaced and emit a
PseudoCALLReg with it whenever it is not ra.

Assisted-by: Opus.
DeltaFile
+23-2bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
+2-5bolt/test/RISCV/call-link-register.s
+25-72 files

FreeBSD/src 9171bb4sys/powerpc/include slb.h

powerpc/pmap: Fix SLB VSID mask

Bits [0:1] map to "B", the "Segment size selector", and are not part of
the VSID.  Correct this mask.
DeltaFile
+1-1sys/powerpc/include/slb.h
+1-11 files

FreeBSD/src 5d884fcsys/conf files.powerpc, sys/dev/dpaa fman_port_var.h fman_port_tx.c

dpaa: Split FMan port driver into distinct TX/RX

There are several port functions that are only for one type or the
other, so they don't make sense to be together.  Splitting these up also
simplifies adding support for the Offline/Host Command ports.
DeltaFile
+18-630sys/dev/dpaa/fman_port.c
+398-0sys/dev/dpaa/fman_port_rx.c
+347-0sys/dev/dpaa/fman_port_tx.c
+85-0sys/dev/dpaa/fman_port_var.h
+2-0sys/conf/files.powerpc
+850-6305 files

LLVM/project da6b0bamlir/include/mlir/Dialect/Linalg/Transforms Transforms.h, mlir/lib/Dialect/Linalg/Transforms ElementwiseOpFusion.cpp

[mlir][linalg] Split elementwise ops with concat inputs (#213630)

Close https://github.com/llvm/llvm-project/issues/213216

This patch tries to reorder patterns like elementwise(concat(x0, x1),
concat(y0, y1)) into concat(elementwise(x0, y0), elementwise(x1, y1)).
The transformation itself is not an optimization. But it will make the
elementwise op to be closer with the data so that the optimizer may find
more optimization oppotunities. See the above patch for an example.

For simplicity, this patch only handle cases for all concats have the
same number of inputs and the size of inputs in the concat dimension to
be the same. We also don't handle linalg.index. And if the inputs of the
elementwise op has other inputs than concat, which is not a scalar, may
be rejected too. We can relax these limitations in the future.

To make the implementation more uniform, we only handles elementwise
like linalg.generic. The elementwise op will be transoformed into
linalg.generic after -convert-elementwise-to-linalg. So the

    [7 lines not shown]
DeltaFile
+411-0mlir/test/Dialect/Linalg/fusion-elementwise-ops-with-concat.mlir
+292-0mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
+9-0mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
+712-03 files

LLVM/project b704e51llvm/lib/DWARFLinker/Parallel DependencyTracker.h DependencyTracker.cpp, llvm/test/tools/dsymutil/X86/DWARFLinkerParallel odr-shared-subtree-demotion.s

[DWARFLinker] Walk each shared subtree's dependencies once (#218072)

cdc31cfa66f0 made every root that references an already-marked subtree
re-walk that subtree to record the completeness dependencies it
contributes, which is what makes the recorded dependency set complete
and independent of thread interleaving. That walk replaced the
isAlreadyMarked short-circuit which had kept marking linear, so a widely
shared subtree is re-parsed and re-resolved once per referencing root.

Linking a RelWithDebInfo clang went from 27s to 67s of wall time and
from 242s to 1447s of CPU, peak memory grew from 35GB to 63GB, and 7.0
billion dependencies were recorded for an unchanged dSYM.

Record only that a root carries the subtree's dependencies and walk each
distinct subtree once. All of a subtree's dependencies demote the same
root, so the expansion stops at the first one that does.

A subtree contributes two kinds of dependency. One kind is recorded
under the root referencing the subtree, varies with that root, and is

    [22 lines not shown]
DeltaFile
+298-0llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-shared-subtree-demotion.s
+164-55llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp
+121-14llvm/lib/DWARFLinker/Parallel/DependencyTracker.h
+583-693 files

LLVM/project 01fec98clang/docs ReleaseNotes.md, clang/lib/Sema SemaCoroutine.cpp

[Clang] Fix -Wunused-parameter for implicit coroutine uses (#217518)

Clang's coroutine semantic analysis builds references to coroutine
parameters
while looking up a class-specific allocation function. When overload
resolution
falls back to a size-only `operator new`, these speculative references
currently
suppress `-Wunused-parameter`.

Preserve each parameter's referenced state while collecting placement
arguments, then mark the parameters referenced only when those arguments
are
included in the selected allocation call. Keep this distinction when
placement
arguments are replaced by `std::nothrow`.

Apply the same rule to promise initialization: when initialization using
the

    [14 lines not shown]
DeltaFile
+44-0clang/test/SemaCXX/warn-unused-parameters-coroutine.cpp
+30-3clang/lib/Sema/SemaCoroutine.cpp
+5-0clang/docs/ReleaseNotes.md
+79-33 files

LLVM/project 3de7874mlir/lib/Dialect/Vector/Transforms VectorTransforms.cpp, mlir/test/Dialect/Linalg/vectorization extract-with-patterns.mlir

[mlir] [vector] try promoting scalar when reordering broadcast/elementwise (#212180)

Inspired by https://github.com/llvm/llvm-project/pull/211208

The thread discussed the case:

```
 %0 = vector.broadcast %arg0 : vector<4xf32> to vector<3x4xf32>
 %1 = vector.broadcast %arg1 : f32 to vector<3x4xf32>
 %2 = vector.broadcast %arg2 : vector<4xf32> to vector<3x4xf32>
 %3 = vector.fma %0, %1, %2 : vector<3x4xf32>
```

The reviewer suggests "broadcasts on %arg0 and %arg2 are removed but
%arg1 is broadcasted to <4xf32>. Then FMA would happen on <4xf32>,
%followed by the broadcast to <3x4xf32>". Now this is solved and we can
see the test case at @fma_mixed_scalar_and_vector_broadcast_source in
the attached test case.

AI assisted.
DeltaFile
+55-16mlir/test/Dialect/Vector/vector-sink.mlir
+36-14mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
+3-3mlir/test/Dialect/Linalg/vectorization/extract-with-patterns.mlir
+94-333 files

LLVM/project 3cc275dlibc/src/__support/FPUtil FPBits.h

test
DeltaFile
+4-4libc/src/__support/FPUtil/FPBits.h
+4-41 files

LLVM/project bbd4612libc/src/__support/FPUtil float80.h, libc/test/src/__support/FPUtil float80_test.cpp

add tests
DeltaFile
+21-0libc/src/__support/FPUtil/float80.h
+15-0libc/test/src/__support/FPUtil/float80_test.cpp
+36-02 files

LLVM/project 37d452alibc/src/__support/FPUtil FPBits.h

formatting
DeltaFile
+4-4libc/src/__support/FPUtil/FPBits.h
+4-41 files

LLVM/project a9c9cfflibc/test/src/__support/FPUtil float80_test.cpp

nit
DeltaFile
+0-3libc/test/src/__support/FPUtil/float80_test.cpp
+0-31 files

LLVM/project 763a723libc/src/__support/FPUtil float80.h, libc/test/src/__support/FPUtil float80_test.cpp

suggestions and add more operators
DeltaFile
+40-16libc/src/__support/FPUtil/float80.h
+34-5libc/test/src/__support/FPUtil/float80_test.cpp
+74-212 files

LLVM/project 575ccc5libc/src/__support/FPUtil float80.h, libc/test/src/__support/FPUtil float80_test.cpp

feat: add negation and a test for it
DeltaFile
+7-0libc/src/__support/FPUtil/float80.h
+2-0libc/test/src/__support/FPUtil/float80_test.cpp
+9-02 files

LLVM/project 01df9d3libc/src/__support/FPUtil CMakeLists.txt float80.h

apply suggestion
DeltaFile
+2-6libc/src/__support/FPUtil/float80.h
+1-0libc/src/__support/FPUtil/CMakeLists.txt
+3-62 files

LLVM/project 23ea3c7libc/src/__support/FPUtil dyadic_float.h

nit
DeltaFile
+1-0libc/src/__support/FPUtil/dyadic_float.h
+1-01 files

LLVM/project 3599d8alibc/src/__support/FPUtil FPBits.h

Removed temporarliy for 128bit container only
DeltaFile
+4-4libc/src/__support/FPUtil/FPBits.h
+4-41 files

LLVM/project 20b3ea1libc/src/__support/FPUtil CMakeLists.txt

fix self dependency
DeltaFile
+1-1libc/src/__support/FPUtil/CMakeLists.txt
+1-11 files

LLVM/project 6e81a79libc/src/__support/FPUtil dyadic_float.h

add explicit bit handling for dyadic_float as per FPBits
DeltaFile
+2-0libc/src/__support/FPUtil/dyadic_float.h
+2-01 files

LLVM/project fe91cdclibc/src/__support/FPUtil float80.h

feat: add tests
DeltaFile
+16-69libc/src/__support/FPUtil/float80.h
+16-691 files