Summary: We like .mli files. Reviewed By: ngorogiannis Differential Revision: D21257473 fbshipit-source-id: 13c3faa77master
parent
3ebca8fd46
commit
c1d603f6b2
@ -0,0 +1,27 @@
|
||||
(*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*)
|
||||
|
||||
open! IStd
|
||||
|
||||
module type S = sig
|
||||
module CFG : ProcCfg.S
|
||||
|
||||
type t
|
||||
|
||||
val schedule_succs : t -> CFG.Node.t -> t
|
||||
(** schedule the successors of [node] *)
|
||||
|
||||
val pop : t -> (CFG.Node.t * CFG.Node.id list * t) option
|
||||
(** remove and return the node with the highest priority, the ids of its visited predecessors, and
|
||||
the new schedule *)
|
||||
|
||||
val empty : CFG.t -> t
|
||||
end
|
||||
|
||||
(** simple scheduler that visits CFG nodes in reverse postorder. fast/precise for straightline code
|
||||
and conditionals; not as good for loops (may visit nodes after a loop multiple times). *)
|
||||
module ReversePostorder (CFG : ProcCfg.S) : S with module CFG = CFG
|
Loading…
Reference in new issue