pub struct CompilationRequest {
pub function_id: u16,
pub target_tier: Tier,
pub blob_hash: Option<[u8; 32]>,
pub osr: bool,
pub loop_header_ip: Option<usize>,
pub feedback: Option<FeedbackVector>,
pub callee_feedback: HashMap<u16, FeedbackVector>,
}Expand description
Request to compile a function at a higher tier.
Fields§
§function_id: u16Function index in the program.
target_tier: TierTarget tier for compilation.
blob_hash: Option<[u8; 32]>Content hash of the function blob (for cache lookup).
osr: boolIf true, this is an OSR compilation request for a specific loop.
The loop_header_ip field specifies which loop to compile.
loop_header_ip: Option<usize>Bytecode IP of the loop header for OSR compilation.
Only meaningful when osr == true.
feedback: Option<FeedbackVector>Feedback vector snapshot for this function (Tier 2+ only).
At Tier 1, feedback is not yet collected, so this is None.
At Tier 2 (optimizing), the JIT reads IC state from this vector
to emit speculative guards and type-specialized code paths.
callee_feedback: HashMap<u16, FeedbackVector>Feedback vectors for inline callee functions (Tier 2+ only).
Maps callee function_id → its FeedbackVector. When the Tier 2 JIT inlines a callee, it merges the callee’s feedback into the compilation so speculative guards can fire inside inlined code.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CompilationRequest
impl RefUnwindSafe for CompilationRequest
impl Send for CompilationRequest
impl Sync for CompilationRequest
impl Unpin for CompilationRequest
impl UnsafeUnpin for CompilationRequest
impl UnwindSafe for CompilationRequest
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> 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>
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>
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