Lines Matching defs:cfg
58 val cfg : (({def : int list, instr : Assem.instr, use : int list}, edgeLab) G.graph) ref = ref (G.empty);
157 #3 (G.context(n, !cfg));
176 fun PrintProgram (cfg : ({instr : Assem.instr, use : int list, def : int list}, edgeLab) G.graph, tmpT) =
178 (CFG.linearizeCFG cfg);
197 fun CalLiveness (cfg)
200 val inS = List.map (fn elm => (S.empty intOrder)) (G.nodes cfg);
202 val (useT,defT) = computeUseDef cfg;
209 let val sucEdges = #4 (G.context(n,cfg))
226 (G.nodes cfg);
247 fun init (cfg, tmpTable) =
296 fun Build (cfg) =
299 val (inS,outS) = CalLiveness cfg;
325 List.map investigate_one_node (G.nodes cfg)
575 fun updateNode(cfg, n:int, inst) =
577 val ((preN,nodeNo,nodeLab,sucN),cfg1) = G.match (n,cfg);
583 fun insertBefore(cfg, n:int, inst) =
585 val (preN,nodeNo,nodeLab,sucN) = G.context (n,cfg);
586 val newCfg = List.foldl (fn (p,gr) => rm_edge((p,n),gr)) cfg (List.map (fn (lab,n) => n) preN);
587 val ct = (preN, G.noNodes cfg, inst, [(0,n)])
593 fun insertAfter(cfg, n:int, inst) =
595 val (preN,nodeNo,nodeLab,sucN) = G.context (n,cfg);
596 val newCfg = List.foldl (fn (s,gr) => rm_edge((n,s),gr)) cfg (List.map (fn (lab,n) => n) sucN);
597 val ct = ([(0,n)], G.noNodes cfg, inst, sucN)
706 ( cfg := updateProgram (!cfg,!spilledNodes);
707 init (!cfg,!tmpTable)
747 ( Build(!cfg);
777 end) (!cfg) (!cfg)
791 cfg := gr;
802 PrintProgram(!cfg, !tmpTable);