diff options
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 3e8940e..03f7a4a 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -1657,15 +1657,17 @@ do_ds_constraint (constraint_t c, bitmap delta) t = find (v->id); tmp = get_varinfo (t)->solution; - if (set_union_with_increment (tmp, sol, 0)) + if (add_graph_edge (graph, t, rhs)) { - get_varinfo (t)->solution = tmp; - if (t == rhs) - sol = get_varinfo (rhs)->solution; - if (!TEST_BIT (changed, t)) + if (bitmap_ior_into (get_varinfo (t)->solution, sol)) { - SET_BIT (changed, t); - changed_count++; + if (t == rhs) + sol = get_varinfo (rhs)->solution; + if (!TEST_BIT (changed, t)) + { + SET_BIT (changed, t); + changed_count++; + } } } } |