jon.recoil.org

Parameter Make.Rec_info_expr

type variable
module Unrolling_state : sig ... end
type t = private
  1. | Const of {
    1. depth : int Flambda2_numbers.Or_infinity.t;
    2. unrolling : Rec_info_expr.Unrolling_state.t;
    }
  2. | Var of Rec_info_expr.variable
    (*

    A variable of kind Flambda_kind.rec_info.

    *)
  3. | Succ of Rec_info_expr.t
    (*

    The next depth. If we inline an occurrence with depth d, then in the inlined body, recursive references will have depth succ d.

    *)
  4. | Unroll_to of int * Rec_info_expr.t
    (*

    Indicate the depth to which unrolling should proceed. The unroll depth is decremented by Succ until it reaches zero, at which point all unrolling should stop.

    *)

An expression for the state of recursive inlining at a given occurrence. Forms the right-hand side of a Let_expr binding for a depth variable.

val initial : Rec_info_expr.t
val unknown : Rec_info_expr.t
val do_not_inline : Rec_info_expr.t
val unroll_to : int -> Rec_info_expr.t -> Rec_info_expr.t
val is_obviously_initial : Rec_info_expr.t -> bool
val equal : Rec_info_expr.t -> Rec_info_expr.t -> bool
val hash : Rec_info_expr.t -> int
val erase_variables : Rec_info_expr.t -> Rec_info_expr.t