summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Saunders <tsaunders@mozilla.com>2014-01-12 11:20:35 -0500
committerTrevor Saunders <tsaunders@mozilla.com>2014-02-18 22:44:39 -0500
commit9119f1d06ac3c74f39d2fb7491ae97449be9e186 (patch)
tree50eda5736dcde2621e44a1c49fcbb1e5a33ef688
parent2a406f8098709ea453cf3c01917058dee83b08bb (diff)
downloadgcc-9119f1d06ac3c74f39d2fb7491ae97449be9e186.tar.gz
use less indirection when passing a bitmap to walk_aliased_vdefs
-rw-r--r--gcc/ipa-prop.c6
-rw-r--r--gcc/tree-sra.c4
-rw-r--r--gcc/tree-ssa-alias.c13
-rw-r--r--gcc/tree-ssa-alias.h2
-rw-r--r--gcc/tree-ssa-dce.c2
5 files changed, 10 insertions, 17 deletions
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index a9dbf098543..11cc8ff18d2 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -769,7 +769,7 @@ parm_preserved_before_stmt_p (struct param_analysis_info *parm_ainfo,
gimple stmt, tree parm_load)
{
bool modified = false;
- bitmap *visited_stmts;
+ bitmap visited_stmts;
ao_ref refd;
if (parm_ainfo && parm_ainfo->parm_modified)
@@ -782,7 +782,7 @@ parm_preserved_before_stmt_p (struct param_analysis_info *parm_ainfo,
if (!parm_ainfo || TREE_CODE (parm_load) != PARM_DECL)
visited_stmts = NULL;
else
- visited_stmts = &parm_ainfo->parm_visited_statements;
+ visited_stmts = parm_ainfo->parm_visited_statements;
walk_aliased_vdefs (&refd, gimple_vuse (stmt), mark_modified, &modified,
visited_stmts);
if (parm_ainfo && modified)
@@ -866,7 +866,7 @@ parm_ref_data_pass_through_p (struct param_analysis_info *parm_ainfo,
ao_ref_init_from_ptr_and_size (&refd, parm, NULL_TREE);
walk_aliased_vdefs (&refd, gimple_vuse (call), mark_modified, &modified,
- parm_ainfo ? &parm_ainfo->pt_visited_statements : NULL);
+ parm_ainfo ? parm_ainfo->pt_visited_statements : NULL);
if (modified)
parm_ainfo->pt_modified = true;
return !modified;
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index c14b2374ae5..6290e58c726 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -3756,7 +3756,6 @@ analyze_modified_params (vec<access_p> representatives)
repr = repr->next_grp)
{
struct access *access;
- bitmap visited;
ao_ref ar;
if (no_accesses_p (repr))
@@ -3766,7 +3765,7 @@ analyze_modified_params (vec<access_p> representatives)
continue;
ao_ref_init (&ar, repr->expr);
- visited = BITMAP_ALLOC (NULL);
+ bitmap_head visited;
for (access = repr; access; access = access->next_sibling)
{
/* All accesses are read ones, otherwise grp_maybe_modified would
@@ -3776,7 +3775,6 @@ analyze_modified_params (vec<access_p> representatives)
if (repr->grp_maybe_modified)
break;
}
- BITMAP_FREE (visited);
}
}
}
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 6a519ee7c55..492bca88f15 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -2455,14 +2455,13 @@ walk_non_aliased_vuses (ao_ref *ref, tree vuse,
static unsigned int
walk_aliased_vdefs_1 (ao_ref *ref, tree vdef,
bool (*walker)(ao_ref *, tree, void *), void *data,
- bitmap *visited, unsigned int cnt)
+ bitmap visited, unsigned int cnt)
{
do
{
gimple def_stmt = SSA_NAME_DEF_STMT (vdef);
- if (*visited
- && !(*visited)->set_bit (SSA_NAME_VERSION (vdef)))
+ if (!visited->set_bit (SSA_NAME_VERSION (vdef)))
return cnt;
if (gimple_nop_p (def_stmt))
@@ -2470,8 +2469,6 @@ walk_aliased_vdefs_1 (ao_ref *ref, tree vdef,
else if (gimple_code (def_stmt) == GIMPLE_PHI)
{
unsigned i;
- if (!*visited)
- *visited = BITMAP_ALLOC (NULL);
for (i = 0; i < gimple_phi_num_args (def_stmt); ++i)
cnt += walk_aliased_vdefs_1 (ref, gimple_phi_arg_def (def_stmt, i),
walker, data, visited, 0);
@@ -2493,17 +2490,15 @@ walk_aliased_vdefs_1 (ao_ref *ref, tree vdef,
unsigned int
walk_aliased_vdefs (ao_ref *ref, tree vdef,
bool (*walker)(ao_ref *, tree, void *), void *data,
- bitmap *visited)
+ bitmap visited)
{
- bitmap local_visited = NULL;
unsigned int ret;
timevar_push (TV_ALIAS_STMT_WALK);
+ bitmap_head local_visited;
ret = walk_aliased_vdefs_1 (ref, vdef, walker, data,
visited ? visited : &local_visited, 0);
- if (local_visited)
- BITMAP_FREE (local_visited);
timevar_pop (TV_ALIAS_STMT_WALK);
diff --git a/gcc/tree-ssa-alias.h b/gcc/tree-ssa-alias.h
index 3544aafca83..5976c1e6ac0 100644
--- a/gcc/tree-ssa-alias.h
+++ b/gcc/tree-ssa-alias.h
@@ -119,7 +119,7 @@ extern void *walk_non_aliased_vuses (ao_ref *, tree,
void *(*)(ao_ref *, tree, void *), void *);
extern unsigned int walk_aliased_vdefs (ao_ref *, tree,
bool (*)(ao_ref *, tree, void *),
- void *, bitmap *);
+ void *, bitmap);
extern void dump_alias_info (FILE *);
extern void debug_alias_info (void);
extern void dump_points_to_solution (FILE *, struct pt_solution *);
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 13a71ceea0b..3380e101e61 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -592,7 +592,7 @@ static void
mark_all_reaching_defs_necessary (gimple stmt)
{
walk_aliased_vdefs (NULL, gimple_vuse (stmt),
- mark_all_reaching_defs_necessary_1, NULL, &visited);
+ mark_all_reaching_defs_necessary_1, NULL, visited);
}
/* Return true for PHI nodes with one or identical arguments