Skip to content
Snippets Groups Projects
Commit 55e9427a authored by David Bühler's avatar David Bühler
Browse files

[Eva] Trace_partitioning: removes already propagated states only at statements.

Restores a previous optimization.
This is a useful optimization, as the inclusion tests between incoming states
and already propagated states are very costly.
parent ed91c31c
No related branches found
No related tags found
No related merge requests found
......@@ -288,8 +288,10 @@ struct
dest.store_partition <- Partition.replace key s dest.store_partition;
in
Extlib.may add state;
(* Filter out already propagated states *)
Extlib.opt_filter (fun s -> Index.add s dest.store_index) state
(* Filter out already propagated states (only at statements). *)
if dest.store_stmt = None
then state
else Extlib.opt_filter (fun s -> Index.add s dest.store_index) state
in
let flow = Flow.join_duplicate_keys flow_states in
let flow = Flow.filter_map update flow in
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment