The following makes sure to use solve_add_graph_edge and honoring special-cases, especially edges from escaped, in the remaining places the solver adds edges.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. * tree-ssa-structalias.cc (do_ds_constraint): Use solve_add_graph_edge. --- gcc/tree-ssa-structalias.cc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc index 84c625d53e5..47808a3d813 100644 --- a/gcc/tree-ssa-structalias.cc +++ b/gcc/tree-ssa-structalias.cc @@ -1767,11 +1767,8 @@ do_ds_constraint (constraint_t c, bitmap delta, bitmap *expanded_delta) if (bitmap_bit_p (delta, anything_id)) { unsigned t = find (storedanything_id); - if (add_graph_edge (graph, t, rhs)) - { - if (bitmap_ior_into (get_varinfo (t)->solution, sol)) - bitmap_set_bit (changed, t); - } + if (solve_add_graph_edge (graph, t, rhs)) + bitmap_set_bit (changed, t); return; } @@ -1825,8 +1822,8 @@ do_ds_constraint (constraint_t c, bitmap delta, bitmap *expanded_delta) break; t = find (v->id); - if (add_graph_edge (graph, t, rhs) - && bitmap_ior_into (get_varinfo (t)->solution, sol)) + + if (solve_add_graph_edge (graph, t, rhs)) bitmap_set_bit (changed, t); } -- 2.35.3