structure Flow = struct datatype flowgraph = FGRAPH of {control: Graph.graph, def: Temp.temp list Graph.Table.table, use: Temp.temp list Graph.Table.table, ismove: bool Graph.Table.table} (* Note: any "use" within the block is assumed to be BEFORE a "def" of the same variable. If there is a def(x) followed by use(x) in the same block, do not mention the use in this data structure, mention only the def. More generally: If there are any nonzero number of defs, mention def(x). If there are any nonzero number of uses BEFORE THE FIRST DEF, mention use(x). For any node in the graph, Graph.Table.look(def,node) = SOME(def-list) Graph.Table.look(use,node) = SOME(use-list) *) end