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