AMDGPU: Implement expansion for f64 exp (#182539)
I asked AI to port the device libs reference implementation.
It mostly worked, though it got the compares wrong and also
missed a fold that happened in compiler. With that fixed I get
identical DAG output, and almost the same globalisel output (differing
by an inverted compare and select). Also adjusted some stylistic
choices.
[TableGen] Complete the support for artificial registers
Artificial registers were added in eb0c510ecde667cd911682cc1e855f73f341d134
as a means of giving super-registers heavier weights than that
of their subregisters, even when they only contain a single
physical subregister.
Artifical registers thus do exist in code and participate in
register unit weight calculations, but are not supposed to be
available for register allocation.
This patch completes the support for artificial registers to:
- Ignore artificial registers when joining register unit uber
sets. Artificial registers may be members of classes that
together include registers and their sub-registers, making it
impossible to compute normalised weights for uber sets they
belong to.
[26 lines not shown]
Revert [Clang] eliminate -Winvalid-noreturn false positive after throw + unreachable try/catch blocks (#183365)
Reverts https://github.com/llvm/llvm-project/pull/175443
---
Reverting for now because the CFG `try` connectivity change caused
additional analysis regressions (`-Wthread-safety-analysis` etc.) beyond
the original fix.
[LoopFusion] clear FusionCandidates more often (#183353)
A LoopVector contains all the loops with the same parent loop (or all
loops with no parent). Once loop fusion is done with the transformation
for candidates extracted from one LoopVector we can safely clear
FusionCandidates. This avoids unnecssary work and results in more
meaningful statistics.
[Hexagon] Fix truncation to boolean vector that need widening (#182528)
When truncating a sub-HVX-width vector to a boolean vector (e.g., v64i8
-> v64i1 in 128-byte HVX mode), the operation would crash with
"Unhandled HVX operation" UNREACHABLE. This happened because the
condition in LowerHvxOperationWrapper/ReplaceHvxNodeResults did not
handle the case where the input vector needs widening and the result is
a boolean vector.
The fix adds WidenHvxTruncateToBool which widens the input to HVX
register width (e.g., v64i8 -> v128i8), performs the truncate to widened
bool type (v128i8 -> v128i1), extracts the result subvector (v128i1 ->
v64i1).
This allows the widened truncate to match the existing V6_vandvrt
pattern in HexagonPatternsHVX.td.
[TableGen] Complete the support for artificial registers
Artificial registers were added in eb0c510ecde667cd911682cc1e855f73f341d134
as a means of giving super-registers heavier weights than that
of their subregisters, even when they only contain a single
physical subregister.
Artifical registers thus do exist in code and participate in
register unit weight calculations, but are not supposed to be
available for register allocation.
This patch completes the support for artificial registers to:
- Ignore artificial registers when joining register unit uber
sets. Artificial registers may be members of classes that
together include registers and their sub-registers, making it
impossible to compute normalised weights for uber sets they
belong to.
[26 lines not shown]
ValueTracking: Special case fmul by llvm.amdgcn.trig.preop
This is another instance of the logic from #183159. If we know
one source is not-infinity, and the other source is less than or
equal to 1, this cannot overflow. Special case llvm.amdgcn.trig.preop,
as a substitute for proper range tracking. This almost enables pruning
edge case handling in trig function implementations, if not for the
recursion depth limit (but that's a problem for another day).
sysutils/py-salt: Update to 3006.23
PR: 287582
Reported by: Nick Hilliard <nick__at__foobar__dot__org>, T.S. <net__at__arrishq__dot__net>, James TD Smith <ahktenzero+freebsd__at__mohorovi__dot__cc>
[WebKit Checkers] Handle CXXRewrittenBinaryOperator in trivial analysis. (#183278)
Visit the semantic form when encountering CXXRewrittenBinaryOperator in
the trivial function analysis / no-delete analysis.
[lldb][Process/FreeBSDKernelCore] Implement DoWriteMemory() (#183237)
Implement `ProcessFreeBSDKernelCore::DoWriteMemory()` to write data on
kernel dump or `/dev/mem`. Due to security concerns (e.g. writing wrong
value on `/dev/mem` can trigger kernel panic), this feature is only
enabled when `plugin.process.freebsd-kernel-core.read-only` is set to
false (true by default).
---------
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
ValueTracking: Teach computeKnownFPClass that multiply by <=1 cannot overflow
If one operand is known not-inf, that can be propagated if the other operand is
known to have a magnitude <= 1.
This enables elimination of some inf checks inside the implementation of trig
functions when the input is known not-inf.
Revert "[flang][openmp] Add support for ordered regions in SIMD directives (#181012)"
This reverts commit 31dacdc1f5d486da6ef6d8b2f7e3b6126d92c9ff.
See the PR for test failure details.
range_tree: use zfs_panic_recover() for partial-overlap remove
zfs_range_tree_remove_impl() used a bare panic() when a segment to be
removed was not completely overlapped by an existing tree entry. Every
other consistency check in range_tree.c uses zfs_panic_recover(), which
respects the zfs_recover tunable and allows pools with on-disk
corruption to be imported and recovered. This one call was
inconsistent, making the partial-overlap case unrecoverable regardless
of zfs_recover.
Replace panic() with zfs_panic_recover() so that operators can set
zfs_recover=1 to import a corrupted pool and reclaim data, consistent
with all other range tree error paths.
Related-to: https://github.com/openzfs/zfs/issues/13483
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Clemens Fruhwirth <clemens at endorphin.org>
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Closes #18255
devel/indi: fix build with libc++ 21
With libc++ 21 devel/indi fails to build, with errors similar to:
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:242:14: error: use of undeclared identifier 'atoi'
242 | int id = atoi(id_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:341:14: error: use of undeclared identifier 'atoi'
341 | *value = atoi(value_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:658:14: error: use of undeclared identifier 'atoi'
658 | int id = atoi(id_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:793:14: error: use of undeclared identifier 'atoi'
793 | *value = atoi(value_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:1154:14: error: use of undeclared identifier 'atoi'
1154 | *value = atoi(value_str);
| ^~~~
[11 lines not shown]
devel/indi: fix build with libc++ 21
With libc++ 21 devel/indi fails to build, with errors similar to:
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:242:14: error: use of undeclared identifier 'atoi'
242 | int id = atoi(id_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:341:14: error: use of undeclared identifier 'atoi'
341 | *value = atoi(value_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:658:14: error: use of undeclared identifier 'atoi'
658 | int id = atoi(id_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:793:14: error: use of undeclared identifier 'atoi'
793 | *value = atoi(value_str);
| ^~~~
/wrkdirs/usr/ports/devel/indi/work/indi-2.1.7/drivers/auxiliary/gemini_flatpanel_adapters.cpp:1154:14: error: use of undeclared identifier 'atoi'
1154 | *value = atoi(value_str);
| ^~~~
[9 lines not shown]
auth: unify pwd_changed_at usage, remove requirement to configure password_policy_length and update the timestamp via console and admin pages as well. closes https://github.com/opnsense/core/issues/9857
CI: Remove deprecated Fedora 41
Fedora 41 was deprecated on Dec 15 2025. Remove it from CI tests.
Reviewed-by: Rob Norris <robn at despairlabs.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
Closes #18261
[WebAssembly] Take symbol flags for exports from the dylink section for shared objects (#183079)
Currently, WASM symbols taken from the export section of shared objects
lose their flags. This can result in link failures. For example, if a
TLS symbol is exported from a shared object, relocation fails because
`wasm-ld` thinks that the symbol is not flagged as a TLS symbol.
This PR populates symbol flags for symbols in the export section from
the flags stored in the dylink0 section.
The export info section was also not serialized by the WASM emitter for
YAML, which this PR fixes
[AArch64] Fix regression from “Fold scalar-to-vector shuffles into DUP/FMOV" (#178227)
Revised #166962.
This patch aims to fix the original compile time regression by
restricting the optimisation to run only on non-constant splats. Without
the guard, an infinite loop is caused because the
`CONCAT(SCALAR_TO_VECTOR, zero)` folds back into the same `BUILD_VECTOR`
and immediately re-enters `LowerBUILD_VECTOR`.
This patch was tested with the original TensorFlow reproduction provided
on the PR and shows a (very) slight improvement on compile-time.
[clang-doc]: Enable horizontal wrapping on longer function definitions (#181417)
This patch enables wrapping for longer function and template definitions
in the generated HTML. Currently uses the no. of parameters to
determine the need to wrap the function. If a function or template has
more than 2 parameters, they are printed one per line. Also fixes a styling
bug where a trailing comma was left after the last parameter.