let computeFirstPredecessor (s: stmt) data =
let new_additional_deps, new_additional_deps_table, _ =
eliminate_additional data.additional_deps_table s
in
let data =
{data with
additional_deps = new_additional_deps;
additional_deps_table = new_additional_deps_table}
in
match s.skind with
| Switch (exp,_,_,_)
| If (exp,_,_,_) ->
let additional_vars = find_deps (Kstmt s) data.deps_table exp in
{data with
additional_deps_table =
StmtMap.add
s
additional_vars
data.additional_deps_table;
additional_deps =
Zone.join
additional_vars
data.additional_deps }
| _ -> data