Skip to main content

compute_goal_fast_path_cold

Function compute_goal_fast_path_cold 

Source
pub(super) fn compute_goal_fast_path_cold<D, I>(
    delegate: &D,
    goal: Goal<I, I::Predicate>,
    origin_span: I::Span,
) -> Option<GoalEvaluation<I>>
where D: SolverDelegate<Interner = I>, I: Interner,
Expand description

compute_goal_fast_path is complicated enough that outling helps, so it gets optimized separately from the caller. compute_goal_fast_path is the inlined version, and most call sites (when adding goals) use it. However, when entering the root we also want to check the fast path, and there the outlining matters.

FIXME(perf) cold might not be worth it here, given that we shuffled some things around since it mattered.