[libc++] Make std::exp constexpr for float and double since C++23
Now that __builtin_exp and __builtin_expf are constant-evaluable in
clang (#199808), mark libc++'s float, double, and integral-promoting
overloads of __math::exp as _LIBCPP_CONSTEXPR_SINCE_CXX23. The long
double overload stays non-constexpr because __builtin_expl is not
constant-evaluable yet.
Add constexpr coverage for std::exp and std::expf to the clang-specific
constexpr <cmath> test.
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
[SLP]Fix crash when all split reduction parts are reduced in tree
A split or-reduction whose every vector part is modeled as a bitfield
pack (or another reduced bitcast root) leaves no vector value for the
final reduction combine, so the accumulated VecRes stays null and the
unconditional final combine hits an assertion. Skip the combine when
no vector part was accumulated.
Fixes https://github.com/llvm/llvm-project/pull/219731#issuecomment-5732717976
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/224689
www/immich: Cleanup port
USE_GNOME needs gnome in USES to take effect, so glib20 was never declared.
Stop packaging source maps, type declarations, tests and coverage reports.
Sponsored by: Netzkommune GmbH
[lld][MachO] Keep coincident alt entries with their atom (#224466)
When an N_ALT_ENTRY precedes a regular symbol at the same address, LLD
attached it one past the end of the preceding atom. This could misdirect
references after atom reordering and suppress valid ICF.
```
_previous:
ret
.alt_entry target.alt
target.alt:
.globl _target
_target:
mov w0, #42
ret
_main:
b target.alt
[16 lines not shown]
[WebAssembly] Diagnose llvm.clear_cache instead of aborting (#224579)
Lowering llvm.clear_cache for WebAssembly called report_fatal_error, so
an unsupported-but-known construct aborted the compiler and printed
"PLEASE submit a bug report", with no indication of which function was
responsible.
Use the fail() helper already used a few hundred lines earlier in the
same file for nest arguments, inalloca arguments and
consecutive-register arguments. That reports a DiagnosticInfoUnsupported
naming the function, and lets the compiler exit with an error rather
than a crash.
Before:
LLVM ERROR: llvm.clear_cache is not supported on wasm
PLEASE submit a bug report to
https://github.com/llvm/llvm-project/issues/
<stack dump>
[8 lines not shown]
[Offloading] Add support for compressed OffloadBinary types
Summary:
Offload binaries are used to store many heterogenous architectures into
a singel offloading blob. These lists can get very large so this PR adds
the option to compress them with the LLVM provided compression
libraries.
The implementation is quite simple, we simply compress all the buffers
after the header into a single compressed blob, then re-construct the
header. Extracting is the reverse.
The biggest change is that the offload binary now **owns** the memory,
whereas before we simply took a reference to it. This is necessary
because the decompression must create new memory compared to what the
user provided. This adds an extra copy internally, but it also
simplifies the V2 additions.
This does not wire up any clang/HIP support, just providing the
functionality.
[Support] Infer compression format from zlib and zstd headers
Summary:
Identify compressed streams from their bitstream headers so callers can
decompress without naming the format. Recognize every valid RFC 1950
zlib header and the zstd frame magic, and reuse that for
getReasonIfUnsupported and decompress. Collapse the AST reader onto the
new helpers.
[LLVMABI] Add Clang 23 compatible handling for matrix types (#224121)
This change updates the LLVM ABI library to enable Clang 23 compatible
classification of matrix types when the `-fclang-abi-compt=23` option is
used. Clang versions 23 and earlier did not accept matrix types as base
types for homogeneous aggregates, but the current version does. The LLVM
ABI library use the new behavior when isHomogeneousAggregate was
introduced there. This change adds an ABICompatInfo setting to allow
version 23 compatibility to be implemented.
This change also moves X86-specific ABI compatibility options into an
X86-specific subclass of ABICompatInfo.
Assisted-by: Cursor / various models
[mlir][xegpu] Derive load_nd lane_data from the hardware block variant (#223164)
setupLoadNdAnchorLayout copied lane_data from the consumer layout. But
lane_data follows from the element width and the block variant the
hardware will use, not from what the consumer wants.
This PR adds get2DBlockLoadLaneData, deriving lane_data from the packing
size the uArch already reports: the load's packed format size along the
innermost dim for a regular 2d block load, the general packed format
size along the second-innermost dim for transform (VNNI), or along the
innermost dim for transpose.
On the fallback path, where the consumer's inst_data is not a usable
block, also pick the variant that can host that lane_data. DPAS_MX
scales land here: width 16 for an 8-bit scale cannot spread 16 lanes of
2 elements over 32 columns, so it is loaded transformed, packing down
the column instead.
scale_a inst_data = [16, 32], lane_layout = [16, 1], lane_data = [1, 4],
[11 lines not shown]
[libc][math][NFC] Fix duplicated class names in math tests. (#224666)
This might cause ODR issues when we put all the tests together into a
single test.
Assisted-by: Gemini
Merge tag 'soc-fixes-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull SoC fixes from Arnd Bergmann:
"The driver fixes are all for simple mistakes: a use-after-free bug on
Samsung Exynos, error handling and reference counting on Arm SCMI
firmware and a problem dealing with inconsistent firmware information.
The rest are devicetree fixes for arm64 platforms from Altera, Renesas
and Amlogic. On the Renesas platform, one patch addresses a boot time
regression, the rest address minor performance and correctness issues"
* tag 'soc-fixes-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (21 commits)
soc: samsung: exynos-pmu: fix use-after-free of interrupt generator node
arm64: dts: renesas: r8a779f0: Set UFS lane count
firmware: arm_scmi: Fix typo "upto" in comment
arm64: dts: renesas: r9a09g087: Switch GBETH TX queue scheduling to WRR
arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR
arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR
arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR
[14 lines not shown]
vt: Reprogram display controller on KDSETMODE KD_TEXT for active window
When a graphical application (X.Org display server, Wayland compositor)
calls KDSETMODE to set the active VT back to KD_TEXT, vt(4) does not
reset the CRTC to point to its framebuffer, leaving the last image of
the graphical application visible instead of the text console until the
next VT switch.
Add a call to vd_postswitch to reset the CRTC, set VDF_INVALID to force
a redraw and schedule the flush timer, like vt(4) does in
vt_window_switch().
Sponsored by: Defenso
Signed-off-by: Quentin Thébault <quentin.thebault at defenso.fr>
Reviewed by: vexeduxr
Pull request: https://github.com/freebsd/freebsd-src/pull/2308
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Will Deacon:
"In this batch we've got a couple of hibernation fixes, a couple of
minor MTE fixes, some per-cpu codegen fixes (which were found as part
of Mark's series adding preemptible this_cpu_*() operations) and a fix
for the Arm CMN PMU driver.
Summary:
- Fix hypercall arguments when resetting EL2 vectors during
hibernation
- Fix hibernation with 52-bit capable kernels on machines without
52-bit addressing, similarly to the recent kexec fix
- Fix a bunch of clumsy codegen issues with our per-cpu accessors
- Fix MTE ptrace documentation to reflect the de-facto ABI behaviour
[14 lines not shown]
Revert "[alpha.webkit.UnretainedCallArgsChecker] Emit a warning for a non-const RetainPtr member (#184243)" (#224464)
This reverts bf005a1227a4822c7c2535dd5f5f3626fbe441b2 as it introduced
too many new warnings.
www/immich-go: Add New Port
immich-go uploads photos and videos to an Immich server from the command
line, without needing Node.js. Beyond plain folders it reads Google Photos
Takeout archives, including their JSON sidecars, and can import albums,
apply tags and filter by date or file type.
WWW: https://github.com/simulot/immich-go
Sponsored by: Netzkommune GmbH
www/immich-cli: Add New Port
The Immich command line interface uploads photos and videos to an Immich
server from a shell, either in one go or by watching a directory for new
files. It talks to the server over its API, so it can run on a machine
that does not host Immich itself.
WWW: https://immich.app/
Sponsored by: Netzkommune GmbH
www/immich-public-proxy: Add New Port
Immich Public Proxy serves shared links from an Immich server without
exposing the server itself to the internet. Only content that has been
shared explicitly is reachable, and the proxy speaks to Immich over its
API on the local network.
WWW: https://github.com/alangrainger/immich-public-proxy
Sponsored by: Netzkommune GmbH
www/immich: Fix packaging and harden the service
The plist is now generated in full instead of relying on the temporary
one, which caught an undeclared link of sharp against glib and gettext.
Both are declared now.
The rc script gained an environment file, a child pid file so that stopping
the service leaves no orphans, a umask of 027 for the files it creates and
a configurable bind address. It also waits for postgresql and valkey.
pkg-message moved to files/pkg-message.in so that the paths it prints are
substituted, and the log files are rotated by newsyslog.
Sponsored by: Netzkommune GmbH
graphics/py-rapidocr: Add New Port
RapidOCR provides the text detection and recognition models of PaddleOCR
converted to ONNX, so they can be run without the PaddlePaddle framework.
Detection locates the text boxes in an image, recognition reads the text
inside them.
cv2 comes from graphics/opencv rather than from the headless wheel, which
conflicts with it and with misc/py-insightface.
WWW: https://github.com/RapidAI/RapidOCR
Sponsored by: Netzkommune GmbH
www/immich-ml: Add optical character recognition
Text in photos is now read by graphics/py-rapidocr, which makes the search
find words that appear inside an image.
The rc script gained an environment file, a child pid file and a umask of
027, the log file is rotated by newsyslog, and pkg-message is substituted
from files/pkg-message.in.
Sponsored by: Netzkommune GmbH
devel/py-omegaconf: Generate the parser with devel/antlr4
The bundled antlr 4.9.3 jar generates a parser that the antlr4 runtime in
the tree refuses to load, so every consumer fails at import time. Generate
it with devel/antlr4 instead and depend on the matching Python runtime.
PR: 298604
Approved by: yuri (maintainer)
Sponsored by: Netzkommune GmbH
Merge tag 'mips-fixes_7.3_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS fixes from Thomas Bogendoerfer:
- Fix kconfig dependencies for ECONET
- Enable weak reordering for EYEQ
- Include USB FDT fixup for Octeon even when USB is modular
* tag 'mips-fixes_7.3_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
MIPS: Octeon: apply USB FDT fixups also when USB is modular
mips: select CONFIG_WEAK_REORDERING_BEYOND_LLSC from CONFIG_EYEQ
MIPS: config: Add EcoNet EN751221 defconfig
mips: econet: fix unmet dependencies for ECONET