From aebd4b54ea711fc669cae360debc2ee212c9bb78 Mon Sep 17 00:00:00 2001 From: Jan Rochel <jan.rochel@cea.fr> Date: Fri, 12 Apr 2024 14:00:54 +0200 Subject: [PATCH] [alias] cosmetics: factor out some code --- src/plugins/alias/src/abstract_state.ml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/alias/src/abstract_state.ml b/src/plugins/alias/src/abstract_state.ml index 0d5b2298c15..c4ee90cd7bc 100644 --- a/src/plugins/alias/src/abstract_state.ml +++ b/src/plugins/alias/src/abstract_state.ml @@ -196,6 +196,11 @@ module Readout = struct let list_pred = List.map (fun b -> get_lval_set b s) (G.ppred s.graph v) in List.fold_left LSet.union LSet.empty list_pred + let vars_pointing_to_vertex v s : VarSet.t = + let preds = G.ppred s.graph v in + let pred_vars = List.map (fun p -> get_vars p s) preds in + List.fold_left VarSet.union VarSet.empty pred_vars + let find_vars lv s = let lv = Lval.simplify lv in try let v = find_lval_vertex lv s in get_vars v s @@ -209,10 +214,10 @@ module Readout = struct let alias_vars lv s : VarSet.t = try let v = find_lval_vertex lv s in - let succs = G.psucc s.graph v in - let pred_succs = List.concat_map (G.ppred s.graph) succs in - let pred_vars = List.map (fun p -> get_vars p s) pred_succs in - List.fold_left VarSet.union VarSet.empty pred_vars + List.fold_left + (fun acc succ -> VarSet.union acc @@ vars_pointing_to_vertex succ s) + VarSet.empty + (G.psucc s.graph v) with Not_found -> VarSet.empty let alias_lvals lv s : LSet.t = -- GitLab