diff options
author | Richard Biener <rguenther@suse.de> | 2023-03-14 14:39:32 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-04-19 14:14:14 +0200 |
commit | 7838574b5aca179e347eb972880ea8376a2cc6b5 (patch) | |
tree | 41ffdce39e021dc863a09c6422b8c44cd75d2f97 /gcc | |
parent | a243ce2a52a6c62bc0d6be0b756a85dd9c1bceb7 (diff) | |
download | gcc-7838574b5aca179e347eb972880ea8376a2cc6b5.zip gcc-7838574b5aca179e347eb972880ea8376a2cc6b5.tar.gz gcc-7838574b5aca179e347eb972880ea8376a2cc6b5.tar.bz2 |
Avoid non-unified nodes on the topological sorting for PTA solving
Since we do not update successor edges when merging nodes we have
to deal with this in the users. The following avoids putting those
on the topo order vector.
* tree-ssa-structalias.cc (topo_visit): Look at the real
destination of edges.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-ssa-structalias.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc index fa3a2e4..8976cc9 100644 --- a/gcc/tree-ssa-structalias.cc +++ b/gcc/tree-ssa-structalias.cc @@ -1632,8 +1632,9 @@ topo_visit (constraint_graph_t graph, struct topo_info *ti, if (graph->succs[n]) EXECUTE_IF_SET_IN_BITMAP (graph->succs[n], 0, j, bi) { - if (!bitmap_bit_p (ti->visited, j)) - topo_visit (graph, ti, j); + unsigned k = find (j); + if (!bitmap_bit_p (ti->visited, k)) + topo_visit (graph, ti, k); } ti->topo_order.safe_push (n); |