[orc-rt] Rename "managed code" to "keepalive". NFC. (#216670)
Renames the Session's managed-code task group and its helpers so that
they name the mechanism -- the barrier that holds the Session open --
rather than a category of code:
ManagedCodeTaskGroup -> KeepaliveTaskGroup
Session::callManagedCode -> Session::callWithKeepalive
Session::managedCodeTokenSource -> Session::keepaliveTokenSource
waitForManagedCodeTasksThenShutdown -> waitForKeepalivesThenShutdown
ManagedCodeCaller -> KeepaliveCaller
and retitles the corresponding section of docs/Design.md from "Managed
code execution and shutdown" to "Keepalives and shutdown".
"Managed code" collides with the established .NET sense of the term,
which risks confusion. Naming the mechanism instead makes the purpose
clear at the call site: callWithKeepalive says that the Session is held
open across the call.
[7 lines not shown]
[ORC] Add lookupAndApply, replacing buildProxies (#216658)
lookupAndApply composes a single atomic lookup from independent
operations, each contributing symbols and returning a handler to run on
the result. Two gains over buildProxies:
- One lookup binds everything, so every handler sees a consistent view
of the JITDylib. (buildProxies did a separate lookup per proxy)
- Each name sits next to the variable it binds, rather than going into a
lookup set in one place and coming back out of a SymbolMap elsewhere.
recordAddr and recordProxy cover the cases we have; recordProxy is in
its own header so holding a Proxy doesn't pull in the machinery to build
one. Prepare functions are independent, so two may request the same
symbol: the composed set goes through SymbolLookupSet::mergeEntries.
Proxy::Create, ProxyInit and proxyInit are removed. ProxySpecs stay
public, so operations can still be resolved under non-default names. The
asynchronous form has no in-tree callers yet.
GlobalISel: Match loads by pointer operand in CombinerHelper
Add a load matcher that binds the pointer operand (like IR's m_Load), with
optional outputs for the load instruction and its MachineMemOperand via m_MMO.
Use it to replace the getVRegDef + dyn_cast idiom in the load combines.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
AArch64: Guard optimizeCondBranch against a physical copy source
optimizeCondBranch walks COPY chains from the branch condition register,
calling getVRegDef on each copy's source operand. A COPY source can be a
physical register which doesn't make sense to pass to getVRegDef.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
security/cryptopp-modern: Add TOOLS option
TOOLS option will install cryptest toguether with TestData and TestVectors,
allowing the installed binary to run cryptest v and cryptest tv as post-install
checks.
PR: 297278
[mlir][bufferization] Add edge and error case tests for static memory planner (#216610)
Extends test coverage for the static memory planner by adding cases that
were missing from the existing suite.
Eight new analysis tests (19-26):
- Static and dynamic shapes coexisting in one function
- Both branches of scf.if deallocating the same alloc
- Dealloc at depth 3 (triply nested scf.if)
- Multi-hop alias chain through two consecutive scf.if results
- arith.select feeding into an scf.if result (cross-interface alias)
- One alloc freed in scf.if body, another in the entry block — same
arena
- Dealloc inside an else branch's nested scf.if
- scf.for body that only reads entry-block buffers (the canonical valid
loop case)
Three new error tests (3-5):
- Dynamic alloc with no dealloc is silently skipped, not an error
[3 lines not shown]
[NFC][MLIR][NVVM] Move tcgen05.mma collector_b tests to separate files (#216320)
This is the NFC change that moves MLIR tcgen05.mma ops with collector_b
feature to separate test files.
PowerPC: Fix combineRLWINM crash on an undef folding operand
Found by AI while working on something else.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Update to dhcpcd-10.5.1 with the following changes:
* DHCP: Only send the rapid commit option when configured to
* DHCP6: Mirror the prior DHCP rapid commit fix to DHCPv6
* route: keep acquisition timestamp when route isn't updated
* privsep: Allow __NR__llseek as well as __NR_llseek on linux
* compat: Take a copy of libc progname variable
* ipv6nd: don't leave a carrier expiry timeout on a freed interface
* compat: define __STDC_WANT_LIB_EXT1__ 1 before including config
* ipv4: clear added state if we didn't delete the address
* linux: workaround a gcc compile warning issue
* DHCP: script reason should be RELEASE on RELEASE, not STOP
* control: Harden the socket at the fs level
* privsep: re-enable capsicum and pledge
* privsep: Fix capsicum support on the control socket
GlobalISel: Migrate misc. CombinerHelper def checks to MIPatternMatch (#216671)
Replace getVRegDef + cast/opcode-check idioms across CombinerHelper
with mi_match, adding named instruction binders and operand-form
matchers as needed.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[analyzer] Remove irrelevant transitions in processCFGBlockEntrance (#216008)
My recent commit c76a617524fa62f85c1ff825b5d47885599c6482 cleaned up the
logic of `ExprEngine::processCFGBlockEntrance`, highlighting the fact
that it sometimes creates an extra transition that has no relevant
purpose. This commit removes this extra transition to simplify the code.
I'm confident that there was no logic that concretely looked for these
particular nodes; and this commit is a no-op if loop unrolling is
disabled (the default). Unless loop widening is also enabled, it can
only remove a node that is directly followed by a sink as its only
child.
However, this is not a NFC change, because changing the number of
exploded nodes can perturb the graph creation and traversal. I analyzed
a dozen open source projects with loop unrolling and widening both
enabled, and among almost 20.000 bug reports these perturbations caused
one new report and three lost reports, which is negligible (0.02%) and
acceptable.