/** * Called to clear out the tracked local values at a call site. Calls kill all * registers, so we don't want to keep locals in registers across calls. We do * continue tracking the types in locals, however. */ void FrameState::killLocalsForCall(LocalStateHook& hook, bool skipThisFrame) const { walkAllInlinedLocals( [&](uint32_t i, unsigned inlineIdx, const LocalState& local) { auto* value = local.value; if (!value || value->inst()->is(DefConst)) return; hook.killLocalForCall(i, inlineIdx, value); }, skipThisFrame); }