-
Erwan Jahier authored
as many new local variables as necessary so that an expression is made at most of one operator. The rational for that is to obtain a lic code that is trivial to clock check (nested node calls, for example, make it less simple). The old behavior can still be obtained using --keep-nested-calls. During that change, I realised that I did not clock check asserts. Hence, I have also added this check.
Erwan Jahier authoredas many new local variables as necessary so that an expression is made at most of one operator. The rational for that is to obtain a lic code that is trivial to clock check (nested node calls, for example, make it less simple). The old behavior can still be obtained using --keep-nested-calls. During that change, I realised that I did not clock check asserts. Hence, I have also added this check.
evalClock.mli 1.28 KiB
(** Time-stamp: <modified the 19/08/2008 (at 15:17) by Erwan Jahier> *)
open CompiledData
open UnifyClock
(** [f ids ve] checks that [ve] is well-clocked (i.e., for node calls,
it checks that the argument and the parameter clocks are compatible),
and returns a clock profile that contains all the necessary information
to be able to check.
*)
val f : id_solver -> subst -> val_exp_eff -> clock_eff list * subst
(** [check_res lxm cel cil] checks that the expected output clock
profile of an expression "cil" is compatible with the result clocks
"cel" of the expression.
For instance, in order to clock check the equation
(x,y)=toto(a,b);
it checks that the clock of "(x,y)" (cel) is compatible with the
output clock profile of node toto (cil).
The type [clock_eff_res] is exported to be able to call that
function outside this module, which is necessary to clock
equations (an equation is not an expression (i.e., not a
val_exp_eff).
*)
val check_res : Lxm.t -> subst -> left_eff list -> clock_eff list -> unit
(* Returns the clock of an expression. Note that this function uses
an internal table, and therefore it should not be called before
the clock checking has been done (by the function f above).*)
val val_exp_eff : val_exp_eff -> clock_eff list