pub enum TagResKind {
AllUntouched,
AllInt,
Mixed,
}Expand description
Derive an ExitTag vector from a per-slot RegKind snapshot.
Unset slots restore via the dispatcher’s entry tags (trace
didn’t touch them); writers (including Nil, see P12-S6-A1)
translate one-to-one to a tag the dispatcher packs without
consulting the entry tag.
P13-S13-E — fast-path classification of an exit_tags
vector. Lets the dispatcher’s restore loop skip per-slot
match-arm dispatch when the entire vector resolves to a
single trivial pattern.
Variants§
AllUntouched
Every slot’s tag is Untouched. The trace didn’t override
any slot’s exit type; vm.stack already holds the right
values from either marshal-in or trace spill helpers.
Dispatcher skips the restore loop.
AllInt
Every slot’s tag is Int. Dispatcher writes
Value::Int(reg_state[i]) per slot without a match arm.
Mixed
Anything else — fall back to the original loop with per-iter match.
Trait Implementations§
Source§impl Clone for TagResKind
impl Clone for TagResKind
Source§fn clone(&self) -> TagResKind
fn clone(&self) -> TagResKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TagResKind
Source§impl Debug for TagResKind
impl Debug for TagResKind
impl Eq for TagResKind
Source§impl PartialEq for TagResKind
impl PartialEq for TagResKind
Source§fn eq(&self, other: &TagResKind) -> bool
fn eq(&self, other: &TagResKind) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for TagResKind
Auto Trait Implementations§
impl Freeze for TagResKind
impl RefUnwindSafe for TagResKind
impl Send for TagResKind
impl Sync for TagResKind
impl Unpin for TagResKind
impl UnsafeUnpin for TagResKind
impl UnwindSafe for TagResKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.