[NVPTX] Generalize flexible operands to floating-point instructions (#230258)
Extend the register-or-immediate operand approach to floating-point
instructions and intrinsics.
[CIR][OpenMP] Add support for the OpenMP 'for' directive
This patch adds support for wsloop in ClangIR: the `for` directive and its
combined forms `parallel for` and `target parallel for`. This is lowered to an
omp.wsloop + omp.loop_nest, nested utilizing the existing queue-based
decomposition.
Assisted-by: Cursor / Claude Sonnet 5 High
[SLP]Fix deps for stores ahead of may-throw calls
Make stores-after-may-throw insts control dependent on the next
may-throw instruction.
Fixes #230402
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/230567
[CIR] Fix layout and attributes for non-power-of-two vectors
Struct members, array elements and union storage are now laid out by
alloc size, as in LLVM, so a three-element vector takes its full 16
bytes instead of 12. Pointer differences and the x86_64 va_arg stride
use the alloc size too.
The calling-convention pass now places noundef and nofpclass the way
classic does. A coercion that widens the value drops noundef. Each
half of a flattened argument keeps the argument's attributes. An
indirect argument's pointer no longer carries nofpclass.
Assisted-by: Cursor / Claude Opus 5.5
NAS-142300 / 28.0.0-BETA.1 / Mirror SMB local account state to HA standby (#19875)
passdb.tdb, the SMB account policy stored inside it, and
group_mapping.tdb are node-local derived state. Account changes made on
the active controller updated them only there, so the standby carried a
stale copy until its next boot or takeover.
A normal failover reconciles this on its own: cifs is a dependent
service, so directoryservices.setup runs smb.configure before restarting
it and no client is ever authenticated against the stale copy. The
window before that completes is still visible to an administrator,
though. Samba tools run on the new active node as soon as it comes up
report the pre-failover accounts, account policy and group mappings,
which is needlessly confusing.
Add smb.synchronize_local_accounts, a single job that reconciles all
three against the configuration database, and route the existing
hand-rolled orchestration through it:
[19 lines not shown]
[llvm][UnicodeData] Check for LIBXML_READER_ENABLED before building UnicodeCharSetsGenerator (#230254)
Since LIBXML_READER_ENABLED is a required feature for building
UnicodeCharSetsGenerator, I added a check in the CMakeLists to ensure
that if there's a static library of libxml2 that library has
LIBXML_READER_ENABLED.
I double checked and this looks like the only required libxml2 feature
for UnicodeCharSetsGenerator.
bsd.dirs.mk: Improve "installing DIRS" message
Some of these messages looked at first glance like they were incorrectly
concatenated, e.g. "installing DIRS testsFILESDIR". Add a colon to
clarify.
Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60525
NAS-142300 / 28.0.0-BETA.1 / Mirror SMB local account state to HA standby (#19875)
passdb.tdb, the SMB account policy stored inside it, and
group_mapping.tdb are node-local derived state. Account changes made on
the active controller updated them only there, so the standby carried a
stale copy until its next boot or takeover.
A normal failover reconciles this on its own: cifs is a dependent
service, so directoryservices.setup runs smb.configure before restarting
it and no client is ever authenticated against the stale copy. The
window before that completes is still visible to an administrator,
though. Samba tools run on the new active node as soon as it comes up
report the pre-failover accounts, account policy and group mappings,
which is needlessly confusing.
Add smb.synchronize_local_accounts, a single job that reconciles all
three against the configuration database, and route the existing
hand-rolled orchestration through it:
[16 lines not shown]
smb: reconcile the account databases under one lock, no nested waits
A job that holds a lock and waits for a job that takes another lock is
the first half of a deadlock. The chain was directoryservices.setup,
which waits for smb.configure, which waited for
smb.synchronize_local_accounts, which waited for synchronize_passdb and
synchronize_group_mappings, each on a lock of its own. Nothing below
waited for anything above, so it did not deadlock, but every level was
one new wait away from doing so, and nothing in the job system would
have detected it.
Now one lock, SMB_ACCOUNT_METADATA_LOCK, with the rule written at its
definition that nothing run under it waits for a job. The work moves
into plain private methods, reconcile_passdb, reconcile_group_mappings
and reconcile_local_accounts, and smb.configure calls the last of them
under the lock instead of waiting for the job. The three synchronize_*
jobs remain as wrappers on the same lock, for the callers that hold
nothing: smb.update, system.security.update, the push to the standby,
the passdb reinit path and the integration tests. What remains is
[15 lines not shown]
Pull up following revision(s) (requested by riastradh in ticket #515):
external/gpl3/gcc/dist/gcc/config/arm/arm.cc: revision 1.2
external/gpl3/gcc/dist/gcc/config/arm/arm.cc: revision 1.3
external/gpl3/gcc/dist/gcc/config/arm/arm.md: revision 1.24
external/gpl3/gcc/dist/gcc/config/arm/arm.h: revision 1.27
gcc/arm: For -mtp=soft, ensure stack alignment even in leaves.
The option -mtp=soft, which is the default on earmv5, makes queries
to the thread pointer, for access to static (`initial-exec')
thread-local storage, go through the C runtime subroutine
__aeabi_read_tp. (For earmv>=6, we use the cp15 register via a
single instruction.)
Thus procedures which gcc thinks of as leaf procedures that use
__aeabi_read_tp are not really leaf procedures -- and even though
__aeabi_read_tp itself doesn't use the stack pointer at all,
resolving the symbol may take a detour through the dynamic linker,
[111 lines not shown]
[libc][math] Optimize exp2f and exp10f hot paths (#224178)
Route common finite inputs directly to the existing degree-5 kernels so
exp2f avoids its exceptional-path frame and exp10f keeps cold handling
out of line. Preserve the proven polynomial arithmetic and special
cases.
Add targeted MPFR regression inputs and official range-based performance
coverage for both functions.
PerfTest medians from alternating baseline/patch runs were:
```
| |baseline | patch | speedup|
+----------------------+----------+-----------+--------+
|exp2f hot normal |2.33805 | 1.92944 | 17.02% |
|exp2f close to one |2.28649 | 1.76252 | 22.78% |
|exp10f hot normal |2.83441 | 2.36588 | 15.80% |
|exp10f close to one |2.89851 | 2.25680 | 20.67% |
[6 lines not shown]
[CIR] Support bool vectors in x86_64 calling-convention lowering (#230280)
Bool vectors are now sized one bit per element, as clang does, and are
passed and returned the way classic CodeGen passes them, including in
records.
Assisted-by: Cursor / Claude Opus 5.5
[MLGO] Do not cap evictions when logging default advisor decisions (#230502)
Otherwise trace collection hits the Regs[CandidatePos].second assertion
on large functions (ones with many evictions)