From 840f7e5af8294d121caf1c712b75ba3c13914a54 Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Thu, 20 Feb 2020 11:25:58 +0100 Subject: WIP --- backend/Linearizeaux.ml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'backend/Linearizeaux.ml') diff --git a/backend/Linearizeaux.ml b/backend/Linearizeaux.ml index 28719207..8dccbb4b 100644 --- a/backend/Linearizeaux.ml +++ b/backend/Linearizeaux.ml @@ -195,6 +195,32 @@ let forward_sequences code entry = in [fs] @ (f code rem) in (f code [entry]) +let iter_set f s = Seq.iter f (Set.to_seq s) + +let try_merge code fs = + let seqs = ref (Set.of_list fs) in + let oldLength = ref (Set.cardinal !seqs) in + let continue = ref true in + while !continue do + iter_set (fun s -> + iter_set (fun s' -> + if (s == s') then () + else if (can_be_merged s s') then + begin + seqs + end + else () + ) !seqs + ) !seqs + (* FIXME - FIXME - continue *) + + + if !oldLength == List.length !seqs then + continue := false + else + oldLength := List.length !seqs + done + let order_sequences fs = fs let enumerate_aux_trace f reach = -- cgit