source: Deliverables/D2.2/8051-indexed-labels-branch/src/RTLabs/RTLabsUtilities.mli @ 1468

Last change on this file since 1468 was 1468, checked in by tranquil, 9 years ago
  • implemented constant propagation
  • implementing partial redundancy elimination
File size: 918 bytes
Line 
1open RTLabs
2
3type node = Label.t
4
5(** Successors of a statement *)
6val statement_successors : statement -> node list
7
8(** computes a map binding the set of predecessors to each node. The domain
9    is guaranteed to be equal to the domain of graph *)
10val compute_predecessors : graph -> Label.Set.t Label.Map.t
11
12(** Given a graph and an entry point, this function deletes all unreachable
13    nodes *)
14val dead_code_elim : graph -> node -> graph
15
16(** [insert_in_between u g src tgt s] inserts [s] between [src] and [tgt].
17    [tgt] must be a successor of [src], and the provided [s] should already be
18                linked to [tgt]. This function just generates a new node containing [s]
19                and updates [src]'s links to [tgt] to be pointing to this new node.
20                If [src] is linked to [tgt] multiple times, all such links are updated. *)
21val insert_in_between :
22    Label.Gen.universe -> graph -> node -> node -> statement -> graph
23
Note: See TracBrowser for help on using the repository browser.