Project

General

Profile

« Previous | Next » 

Revision dfce5630

Added by Lélio Brun 9 months ago

patch de Xavier pour réparer -O 3

View differences:

src/checks/liveness.ml
196 196
  let disjoint = Hashtbl.find ctx.disjoint var.var_id in
197 197
  let locally_reusable v =
198 198
    IdentDepGraph.fold_pred (fun p r -> r && Disjunction.CISet.exists (fun d -> p = d.var_id) disjoint) ctx.dep_graph v.var_id true in
199
  let eligibles = Disjunction.CISet.filter (eligible node ctx heads var) ctx.evaluated in
199
  let eligibles =
200
    if ISet.mem var.var_id (ExprDep.node_memory_variables node)
201
    then Disjunction.CISet.empty
202
    else Disjunction.CISet.filter (eligible node ctx heads var) ctx.evaluated in
200 203
  let quasi_dead, live = Disjunction.CISet.partition locally_reusable eligibles in
201 204
  let disjoint_live = Disjunction.CISet.inter disjoint live in
202 205
  let dead = Disjunction.CISet.filter (fun v -> is_graph_root v.var_id ctx.dep_graph) quasi_dead in

Also available in: Unified diff