sail

Sail is a language for describing the instruction semantics of processors
IN THIS PACKAGE
Module Constant_fold
module StringMap : sig ... end
val optimize_constant_fold : bool ref
val fexp_of_ctor : (Value.StringMap.key * Value.value) -> unit Ast.fexp
val exp_of_value : Value.value -> unit Ast.exp
val safe_primops : ( Value.value list -> Value.value ) StringMap.t
val opt_fold_to_unit : string list ref
val fold_to_unit : Ast_util.IdSet.elt -> bool
val is_constant : Type_check.tannot Ast.exp -> bool
val is_constant_fexp : Type_check.tannot Ast.fexp -> bool
val no_fixed : fixed
val rw_exp : fixed -> string -> ( unit -> 'a ) -> ( unit -> 'b ) -> Interpreter.state -> Type_check.tannot Ast.exp -> Type_check.tannot Ast.exp
val rewrite_constant_function_calls' : fixed -> string -> Type_check.tannot Ast_defs.ast -> Type_check.tannot Ast_defs.ast
val rewrite_constant_function_calls : fixed -> string -> Type_check.tannot Ast_defs.ast -> Type_check.tannot Ast_defs.ast
type to_constant =
| Register of Ast.id * Ast.typ * Type_check.tannot Ast.exp
| Register_field of Ast.id * Ast.id * Ast.typ * Type_check.tannot Ast.exp