diff lab4/share.mli @ 0:bfdcc3820b32

Basis
author Mike Spivey <mike@cs.ox.ac.uk>
date Thu, 05 Oct 2017 08:04:15 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lab4/share.mli	Thu Oct 05 08:04:15 2017 +0100
@@ -0,0 +1,11 @@
+(* lab4/share.mli *)
+(* Copyright (c) 2017 J. M. Spivey *)
+
+(* The function |traverse| transforms a list of optrees by finding 
+   common subexpressions; for each of them, it allocates a temp with
+   an initializing assignment, then replaces all occurrences of the
+   subexpression with a use of the temp.  Procedure calls are also moved
+   to the top level by a similar mechanism. *)
+
+(* |traverse| -- find common subexpressions in a procedure body *)
+val traverse : Optree.optree list -> Optree.optree list