summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-05 07:09:44 +0000
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-05 07:09:44 +0000
commit707dd2b0d250d56dab174df373172c117ab71035 (patch)
treed1dd76fcc7b537a9e780a3c14fab8f100ff66dfe /gcc/tree-ssa-structalias.c
parent4d842d63831318845583e0a05e7be978d8923ba6 (diff)
downloadgcc-707dd2b0d250d56dab174df373172c117ab71035.tar.gz
2009-02-05 Daniel Berlin <dberlin@dberlin.org>
Richard Guenther <rguenther@suse.de> PR tree-optimization/39100 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the comment says and add edges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143951 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 3e8940e5166..03f7a4ade65 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++;
+ }
}
}
}