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  

1  open RTLabs 

2  

3  type node = Label.t 

4  

5  (** Successors of a statement *) 

6  val 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 *) 

10  val 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 *) 

14  val 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. *) 

21  val insert_in_between : 

22  Label.Gen.universe > graph > node > node > statement > graph 

23  

Note: See
TracBrowser
for help on using the repository browser.