pub struct CompilationResult {
pub function_id: u16,
pub compiled_tier: Tier,
pub native_code: Option<*const u8>,
pub error: Option<String>,
pub osr_entry: Option<OsrEntryPoint>,
pub deopt_points: Vec<DeoptInfo>,
pub loop_header_ip: Option<usize>,
pub shape_guards: Vec<ShapeId>,
}Expand description
Result of background compilation.
Fields§
§function_id: u16Function index that was compiled.
compiled_tier: TierTier that was compiled to.
native_code: Option<*const u8>Native code pointer if JIT compilation succeeded.
error: Option<String>Error message if compilation failed (function stays at current tier).
osr_entry: Option<OsrEntryPoint>If this is an OSR compilation, the entry point metadata.
deopt_points: Vec<DeoptInfo>Deopt info for all guard points in the compiled code. Each entry describes how to reconstruct interpreter state when a speculative guard fails inside the JIT-compiled code.
loop_header_ip: Option<usize>Bytecode IP of the loop header for OSR results. Used for blacklisting failed loops so compilation is not re-attempted.
shape_guards: Vec<ShapeId>Shape IDs guarded by this compilation. Used by DeoptTracker to invalidate the function when a guarded shape transitions.
Trait Implementations§
Source§impl Debug for CompilationResult
impl Debug for CompilationResult
impl Send for CompilationResult
Auto Trait Implementations§
impl Freeze for CompilationResult
impl RefUnwindSafe for CompilationResult
impl !Sync for CompilationResult
impl Unpin for CompilationResult
impl UnsafeUnpin for CompilationResult
impl UnwindSafe for CompilationResult
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more