[flang][debug] Keep the bounds of variables in stack slots at -O0. (#229876)
flang uses hidden variables to carry the bounds and length parameters of
an array or character in the debug info. The fake_use thing was added to
keep them alive throughout the function. It works in many but not all
cases, and the ones it does not cover take a number of different forms.
Most of them show up on GPU, but several can be reproduced on the host
as well, two of which are
https://github.com/llvm/llvm-project/issues/229434 and the GDB fortran
test gdb.fortran/mixed-lang-stack.exp.
For VLA, clang emits a stack slot to carry each dimension and points the
DISubrange at a dbg.declare on that slot. The optimizer promotes the
slot away, so it is at -O0 that it survives and gives the dimension a
location valid throughout the function.
Using similar approach, at -O0, AddDebugInfo gives each of these hidden
variables a stack slot of its own: a fir.alloca in the alloca block of
the enclosing region, with the bound or length parameter stored into it
[8 lines not shown]
[BOLT] Move target-specific relocation logic into target handlers (#217926)
[BOLT] Introduce target-specific relocation handlers
This PR cleans up BOLT's target-specific relocation handling.
Move relocation logic directly into the X86, AArch64, and RISC-V
handlers located in their corresponding lib/Target directories.
This removes the remaining target-specific relocation helpers from the
generic Relocation.cpp implementation.
This is a behavior-preserving refactoring.
AI tools (codex) were used to assist with implementation.
[lldb][test] Adjust Windows xfails now that PDB tests are ran (#231831)
Since #230116, several tests have been failing on Windows on Arm.
Failing aka not running before and now running and failing.
It seems that PDB versions pass on Windows on x86_64 but not AArch64.
Though I am suspicious of that, I cannot find any evidence of x86_64
failures so I assume it's the case.
ARM: Generate processor family and architecture lists in backend (#231620)
ARMTargetParserDef.inc is only included by ARMSubtarget. It was
generated by the TargetParser library's tablegen step, which every
other LLVM library depends on, even when the ARM target is not
built. Generate it with the rest of the ARM backend's tablegen outputs
instead.
This removes 14% of the time in the TargetParser tablegen step, along
with a dependency on 71 ARM td files.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
interfaces: remove system_routing_configure() #9352
The function is called via $reload hook so adding another
hook makes no sense. This may have changed since the original
commit below and since we need to priv-sep these calls the
easiest way is to remove it. ;)
See also: https://github.com/pfsense/pfsense/commit/8e11b23f541d
(cherry picked from commit 530ee0cee00cf1399af7333945e884878d0d3cdf)
[TimeProfiler] Mark the TimeTraceScope class nodiscard (#231700)
This would have caught #213521
This patch is similar to #180008 - to understand why
to put this attribute onto the class instead of on the individual ctors.
This patch also fixes the discarded TimeTraceScope
instances within clang and clang-tools-extra now that I was here.
firmware: opnsense-version: simplifications and verbose mode
-V is already taken so verbose mode goes to -D instead.
Try something new by passing ${OPT} expansion so we can also
make command assingments more easy in the future.
[InstCombine] Fold select of pow into select of the differing operand
When both arms of a select are calls to `llvm.pow` with one use that
differ in exactly one operand, sink the select into that operand:
$$
\mathrm{select}(c,\ x^{y},\ x^{z}) \rightarrow x^{\mathrm{select}(c,\ y,\ z)}
$$
$$
\mathrm{select}(c,\ x^{z},\ y^{z}) \rightarrow \mathrm{select}(c,\ x,\ y)^{z}
$$
This removes one `pow` call. FMF are intersected and debug locations
are merged. The transform is skipped when a differing operand is a
constant, since that may enable a cheaper lowering (e.g.
$x^2 \rightarrow x \cdot x$).
dashboard: widget lifecycle cleanup
- Remove manual tick calls in onWidgetOptionsChanged case and centralize this to the manager
- When refreshing, cancel any outstanding refresh actions
- Only resolve option metadata once when opening a dialog
- Prevent a double graph data fetch for the HealthGraph during both onMarkupRendered() and the initial tick
- Remove direct tick/update calls from Certificates, DnsmasqLeases, KeaLeases, Gateways and ThermalSensors as the manager now takes care of this.
[libc] Implement lockf in unistd (#230856) (#231145)
Implement the POSIX function `lockf(int fd, int cmd, off_t len)` in
`<unistd.h>`.
Fixes #230856.
Assisted by Antigravity and reviewed by Aman Maurya.
pcm.4: Remove DIAGNOSTICS section
These diagnostics do not exist anymore.
MFC after: 1 week
(cherry picked from commit 25faf861089ca119528ea4da39fe594b1c5ca55a)
rc.d/mountd: Do not require /etc/exports
mountd exits if it cannot read any exports files. Requiring
/etc/exports, however, unconditionally stops mountd from starting on a
server that exports ZFS datasets only (/etc/zfs/exports).
Let sbin/mountd handle requirements itself, instead of hardcoding
/etc/exports, which is also wrong, because different files can be
specified in mountd_flags.
This patch also works with nfsv4_server_enable="YES", by preserving the
behavior of failing to start if there is no "V4:" line in the exports
file, which is missing by default on ZFS-only exports.
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Reviewed by: rmacklem, markj, emaste
Differential Revision: https://reviews.freebsd.org/D60044
(cherry picked from commit 26203cca52621c215f60640bf59128dcd9780be7)
[InstCombine] Add tests for select of intrinsics differing in one operand. NFC (#227736)
Add tests for select between two calls to the same trivially
vectorizable
intrinsic whose operands differ in exactly one position.
Positive cases cover pow (scalar, vector, f64, vector with scalar
condition,
FMF, !prof metadata, one constant operand), sqrt, fma, copysign, fshl,
and
powi with a scalar condition.
Negative cases cover both operands constant, multiple differing
operands,
identical operands, extra uses, mismatched intrinsics, non intrinsic
calls,
powi with a vector condition, powi with mismatched exponent types, and
immarg operands (smul_fix).