[ORC] Call Perf/VTune support wrappers through Proxies (#226677)
Hold PerfSupportPlugin's start/end registration wrappers and
VTuneSupportPlugin's unregister wrapper as Proxy members, replacing
their callSPSWrapper calls. Each proxy is built in the constructor from
the address it already takes, so the constructor signatures are
unchanged. The Perf impl and VTune register wrappers are only used as
alloc-action tags and stay ExecutorAddrs.
Disallow nul byte in received scp -O filename. Not reachable in normal
operation since a nul would cause a filename mismatch, but potentially
possible if being used an unusual configuration such as a custom filter.
Reported by Chua Wei Xun <weixun.chua at e-cq.net>, ok djm@
libthr: GC pshared locks not more than each 25msecs by default
Provide a tunable env variable to request immediate GC on destroy
to allow to return to the previous behavior.
Based on the report and patch by Atle Solbakken <atle.solbakken at gmail.com>.
PR: 268532
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
libthr: GC pshared locks not more than each 25msecs by default
Provide a tunable env variable to request immediate GC on destroy
to allow to return to the previous behavior.
Based on the report and patch by Atle Solbakken <atle.solbakken at gmail.com>.
PR: 268532
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
[clang] Unique NamespaceAndPrefixStorages with a UniquingSet (NFC) (#224221)
This patch migrates NamespaceAndPrefixStorages in ASTContext from
llvm::FoldingSet to llvm::UniquingSet.
NamespaceAndPrefixStorage keys on a pair of const NamespaceBaseDecl *
and NestedNameSpecifier. Switching to UniquingSet allows us to look
up storages with a typed key, eliminating FoldingSetNodeID
serialization at lookup sites and removing
NamespaceAndPrefixStorage::Profile.
Assisted-by: Antigravity
pool_cache(9): Allocate struct pool_cache with declared alignment.
The definition of struct pool_cache has __aligned(CACHE_LINE_SIZE) on
the pc_fullgroups member, so the compiler will assume struct
pool_cache pointers are aligned as such.
As a space optimization on uniprocessor systems, we define the
variable `coherency_unit' (as part of the module ABI) to be
COHERENCY_UNIT (often 64 or 128) in MULTIPROCESSOR builds, but
to ALIGNBYTES+1 (often 4, 8, or 16) for !MULTIPROCESSOR builds where
cache line sharing isn't as much of a problem.
But this isn't safe as an optimization for allocating objects that
have statically declared (as part of their ABI) CACHE_LINE_SIZE
alignment.
PR port-evbmips/60812: UBSan: Undefined Behavior in [sys-src] member
access within misaligned address [..] for type '[..]' which requires
128 byte alignment
proc(9): Allocate struct proc with declared alignment.
The definition of struct proc includes __aligned(COHERENCY_UNIT) on
the p_auxlock member, so the compiler will assume struct proc
pointers are aligned as such.
As a space optimization on uniprocessor systems, we define the
variable `coherency_unit' (as part of the module ABI) to be
COHERENCY_UNIT (often 64 or 128) in MULTIPROCESSOR builds, but
toALIGNBYTES+1 (often 4, 8, or 16) for !MULTIPROCESSOR builds where
cache line sharing isn't as much of a problem.
But this isn't safe as an optimization for allocating objects that
have statically declared (as part of their ABI) COHERENCY_UNIT
alignment.
PR port-evbmips/60812: UBSan: Undefined Behavior in [sys-src] member
access within misaligned address [..] for type '[..]' which requires
128 byte alignment
vnode(9): Allocate vnodes with declared alignment.
The definition of struct vnode_impl includes various
__aligned(COHERENCY_UNIT), so the compiler will assume struct vnode
pointers are aligned as such.
As a space optimization on uniprocessor systems, we define the
variable `coherency_unit' (as part of the module ABI) to be
COHERENCY_UNIT (often 64 or 128) in MULTIPROCESSOR builds, but
toALIGNBYTES+1 (often 4, 8, or 16) for !MULTIPROCESSOR builds where
cache line sharing isn't as much of a problem.
But this isn't safe as an optimization for allocating objects that
have statically declared (as part of their ABI) COHERENCY_UNIT
alignment.
PR port-evbmips/60812: UBSan: Undefined Behavior in [sys-src] member
access within misaligned address [..] for type '[..]' which requires
128 byte alignment