let backward_data_scope allstmts modif_stmts s =
States.clear ();
List.iter (fun s -> States.add s State.NotSeen) allstmts;
let modified s = StmtSetLattice.mem s modif_stmts in
States.replace s State.Start;
let stmts = s.preds in
let module Computer = BackwardScope (struct let modified = modified end) in
let module Compute = Dataflow.Backwards(Computer) in
Compute.compute stmts