From 4b119d6f9f0e846edccaf5c08788ca1615b22526 Mon Sep 17 00:00:00 2001 From: xleroy Date: Sun, 16 Aug 2009 15:35:09 +0000 Subject: Cil2Csyntax: added goto and labels; added assignment between structs Kildall: simplified the interface Constprop, CSE, Allocation, Linearize: updated for the new Kildall RTL, LTL: removed the well-formedness condition on the CFG, it is no longer necessary with the new Kildall and it is problematic for validated optimizations. Maps: more efficient implementation of PTree.fold. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1124 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- backend/Linearizeaux.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backend/Linearizeaux.ml') diff --git a/backend/Linearizeaux.ml b/backend/Linearizeaux.ml index 239e2a6d..b2738605 100644 --- a/backend/Linearizeaux.ml +++ b/backend/Linearizeaux.ml @@ -50,6 +50,7 @@ module IntSet = Set.Make(struct type t = int let compare = compare end) (* Determine join points: reachable nodes that have > 1 predecessor *) let join_points f = + let succs = LTL.successors f in let reached = ref IntSet.empty in let reached_twice = ref IntSet.empty in let rec traverse pc = @@ -59,7 +60,7 @@ let join_points f = reached_twice := IntSet.add npc !reached_twice end else begin reached := IntSet.add npc !reached; - List.iter traverse (LTL.successors f pc) + List.iter traverse (Kildall.successors_list succs pc) end in traverse f.fn_entrypoint; !reached_twice -- cgit