arm64 vfp: eliminate nested critical sections
At two out of three call sites to vfp_restore_state_common(), the caller
must use critical_{enter,exit}() to prevent preemption between its call
to vfp_restore_state_common() and other actions, notably its call to
sve_enable(). So, it is arguably better to make
vfp_restore_state_common()'s caller responsible for performing
critical_{enter,exit}() and simply perform CRITICAL_ASSERT() inside
vfp_restore_state_common().
Reviewed by: kib, markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D58859
[ORC] Share memory-map bindings between their two clients (#216911)
SimpleMemoryMapBindings holds an executor-side memory manager's instance
address and a Proxy per operation: reserve, initialize, deinitialize,
release. EPCGenericJITLinkMemoryManager and SimpleRemoteMemoryMapper
both take one, so the operations are described once rather than per
client.
SimpleRemoteMemoryMapper previously held a SymbolAddrs struct and made
raw EPC.callSPSWrapperAsync calls. Going through proxies drops the
per-call serialization-error plumbing, since Proxy already folds that
into the result.
sps::createSimpleMemoryMapBindings resolves the bindings with a single
lookup, under the specs' default (SimpleNativeMemoryMap) names. The
specs move out of EPCGenericJITLinkMemoryManagerSPS.h alongside the
bindings, as they describe the interface rather than either client.
llvm-jitlink's simple-remote memory manager uses that instead of reading
the legacy SimpleExecutorMemoryManager* names out of the bootstrap
symbol map.
[clang][lex] Do not translate repeated include into import (#216704)
Using `ModuleToImport` when deciding whether to turn a repeated include
into an import, or whether to skip it, isn't right. We have
`ModuleToImport=true` even without `-fmodules` in textual compilations.
This PR starts checking `UsableClangHeaderModule`, matching what we do
for the first inclusion of that header.
rdar://184549117
deskutils/flameshot: Update to 14.0.0
- Switch from QT5 to QT6 libraries
- Download Color-Widgets component from GitLab, because we only have a
QT5 version in the ports tree (x11-toolkits/color-widgets-qt5)
- Pet portclippy
PR: 297559
[BOLT] Fix test for systems where dl/pthread are not part of libc (#206944)
The bolt/test/runtime/setup-race.cpp test (including the original one)
crashes with a segfault on Ubuntu 20.04 (glibc 2.31) because the dlsym
symbol is not found.
According to the glibc 2.34 release notes, libpthread, libdl, libutil,
and libanl have been integrated into libc. For older glibc versions, it
is still necessary to link against libdl (for dlsym) and libpthread (for
pthread_* symbols).
ktls: Propagate EPG_FLAG_ANON to mapped mbufs
Otherwise ktls_mbuf_crypto_state() will reject mbufs created by
_mb_unmapped_to_ext(), which arises when transmitting packets through an
interface that doesn't support unmapped mbufs, and the loopback
interface in particular.
PR: 296498
Fixes: 3444414cb463 ("ktls: Don't attempt to modify non-anonymous mbufs on the receive path")
Reviewed by: gallatin, jhb
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57557
(cherry picked from commit 815976ee14121bafe8a8ab002459d32f8928f2de)
GlobalISel: Add m_PosZeroFP matcher and use it in AArch64 selector
Add an FP-constant predicate matcher m_PosZeroFP, mirroring the IR
PatternMatch helper, and use it in emitFPCompare instead of binding the
ConstantFP just to test for +0.0. NFC.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Reland "[ORC] Track __emutls_t definitions in IRMaterializationUnit" (#207161) (#209717)
Relands #207161 (the `IRMaterializationUnit::discard` fix for duplicated
`__emutls_t.<var>` symbols). History: #207161 merged, reverted in
#207775,
relanded in #208413, reverted again in #209260 (a day before the 23.x
cut).
### Why #208413 was reverted
clang-repl's JIT lowers `thread_local` to emulated TLS on every target
(`JITTargetMachineBuilder` forces `EmulatedTLS`), so JIT'd code always
references `__emutls_get_address`. #208413 only made that symbol
resolvable on
Darwin (`#ifdef __APPLE__` + `isOSBinFormatMachO()`), where it lives in
the
compiler-rt builtins static archive. The same gap exists on any host
that
links compiler-rt builtins instead of libgcc_s: the arm-toolchain CI hit
[80 lines not shown]
[VectorCombine] Handle frees and synchronization in single element stores (#216562)
foldSingleElementStore only checked whether intervening instructions modified
the stored memory. Calls that may free or synchronize could therefore make
scalarization incorrect.
Fixes https://github.com/llvm/llvm-project/issues/216557
[libc] Drop .unit/.hermetic suffix from test support libraries (#216689)
This is not necessary now that we only build one kind of a test in a
given build configuration. This also makes it easier to convert to
something closer to how other libc libraries work.
[RISCV] Query sched_getaffinity before hwprobe for -mcpu=native (#216886)
Heterogenous CPUs like the SpacemiT K3 have a different marchid/mimpid
on different cores. The previous code asked for the common marchid/mimpid
amongst all CPUs. This will return -1 since they don't match across all
CPUs.
This patch uses sched_getaffinity to get the CPUs the compiler is
running on. If the process has been restricted to either the X100 or
A100 cores, this will allow us to get the marchid/mimpid for just those
cores.
[clang][SPIR-V] Remove CC_SpirFunction calling convention (#216252)
CC_SpirFunction is now redundant: CC_C already lowers to spir_func on
SPIR/SPIR-V targets, after
https://github.com/llvm/llvm-project/pull/210882
reporting: adjust capitalization on health settings buttons #10724
The old delete functionality in the reporting settings was a bit more
prominent but it's nice to see it's still here. Not sure about the
"show collected reports" since it doesn't imply you can delete the
inidividual reports from there.