aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@codesourcery.com>2006-04-12 22:55:28 +0000
committerKazu Hirata <kazu@codesourcery.com>2006-04-12 22:55:28 +0000
commit25a4a2433ecea39739cdeaed6aab1743b39d50ef (patch)
tree67e0521f1ea7b116a6b340efd5a11541bd856f35
parent1802e605936d58e13705f8ccdcc3b858cbfdadd2 (diff)
* tree-ssa-alias.c (set_initial_properties, init_alias_info,
delete_alias_info, compute_flow_sensitive_aliasing, group_aliases): Use VEC instead of VARRAY. * tree-ssa-structalias.c (update_alias_info): Likewise. * tree-ssa-structalias.h (alias_info): Change the type of processed_ptrs to VEC(tree,heap) *. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@112903 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/tree-ssa-alias.c19
-rw-r--r--gcc/tree-ssa-structalias.c2
-rw-r--r--gcc/tree-ssa-structalias.h2
4 files changed, 20 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index da9ac043170..747c3b2c4d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2006-04-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree-ssa-alias.c (set_initial_properties, init_alias_info,
+ delete_alias_info, compute_flow_sensitive_aliasing,
+ group_aliases): Use VEC instead of VARRAY.
+ * tree-ssa-structalias.c (update_alias_info): Likewise.
+ * tree-ssa-structalias.h (alias_info): Change the type of
+ processed_ptrs to VEC(tree,heap) *.
+
2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
PR target/27060
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index cc652e75e65..4e8b5a4374a 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -314,6 +314,7 @@ set_initial_properties (struct alias_info *ai)
unsigned int i;
referenced_var_iterator rvi;
tree var;
+ tree ptr;
FOR_EACH_REFERENCED_VAR (var, rvi)
{
@@ -334,9 +335,8 @@ set_initial_properties (struct alias_info *ai)
}
}
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
var_ann_t v_ann = var_ann (SSA_NAME_VAR (ptr));
@@ -859,7 +859,7 @@ init_alias_info (void)
ai = XCNEW (struct alias_info);
ai->ssa_names_visited = sbitmap_alloc (num_ssa_names);
sbitmap_zero (ai->ssa_names_visited);
- VARRAY_TREE_INIT (ai->processed_ptrs, 50, "processed_ptrs");
+ ai->processed_ptrs = VEC_alloc (tree, heap, 50);
ai->written_vars = BITMAP_ALLOC (&alias_obstack);
ai->dereferenced_ptrs_store = BITMAP_ALLOC (&alias_obstack);
ai->dereferenced_ptrs_load = BITMAP_ALLOC (&alias_obstack);
@@ -943,7 +943,7 @@ delete_alias_info (struct alias_info *ai)
tree var;
sbitmap_free (ai->ssa_names_visited);
- ai->processed_ptrs = NULL;
+ VEC_free (tree, heap, ai->processed_ptrs);
for (i = 0; i < ai->num_addressable_vars; i++)
free (ai->addressable_vars[i]);
@@ -1085,20 +1085,19 @@ static void
compute_flow_sensitive_aliasing (struct alias_info *ai)
{
size_t i;
+ tree ptr;
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
if (!find_what_p_points_to (ptr))
set_pt_anything (ptr);
}
create_name_tags ();
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
unsigned j;
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
var_ann_t v_ann = var_ann (SSA_NAME_VAR (ptr));
bitmap_iterator bi;
@@ -1411,6 +1410,7 @@ static void
group_aliases (struct alias_info *ai)
{
size_t i;
+ tree ptr;
/* Sort the POINTERS array in descending order of contributed
virtual operands. */
@@ -1478,10 +1478,9 @@ group_aliases (struct alias_info *ai)
into p_5->field, but that is wrong because there have been
modifications to 'SMT.20' in between. To prevent this we have to
replace 'a' with 'SMT.20' in the name tag of p_5. */
- for (i = 0; i < VARRAY_ACTIVE_SIZE (ai->processed_ptrs); i++)
+ for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
size_t j;
- tree ptr = VARRAY_TREE (ai->processed_ptrs, i);
tree name_tag = SSA_NAME_PTR_INFO (ptr)->name_mem_tag;
VEC(tree,gc) *aliases;
tree alias;
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 990398c1803..7a00de45611 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3041,7 +3041,7 @@ update_alias_info (tree stmt, struct alias_info *ai)
if (!TEST_BIT (ai->ssa_names_visited, SSA_NAME_VERSION (op)))
{
SET_BIT (ai->ssa_names_visited, SSA_NAME_VERSION (op));
- VARRAY_PUSH_TREE (ai->processed_ptrs, op);
+ VEC_safe_push (tree, heap, ai->processed_ptrs, op);
}
/* If STMT is a PHI node, then it will not have pointer
diff --git a/gcc/tree-ssa-structalias.h b/gcc/tree-ssa-structalias.h
index bc129dde134..008c0156b87 100644
--- a/gcc/tree-ssa-structalias.h
+++ b/gcc/tree-ssa-structalias.h
@@ -34,7 +34,7 @@ struct alias_info
sbitmap ssa_names_visited;
/* Array of SSA_NAME pointers processed by the points-to collector. */
- varray_type processed_ptrs;
+ VEC(tree,heap) *processed_ptrs;
/* ADDRESSABLE_VARS contains all the global variables and locals that
have had their address taken. */