diff options
author | Trevor Saunders <tsaunders@mozilla.com> | 2014-01-12 11:20:35 -0500 |
---|---|---|
committer | Trevor Saunders <tsaunders@mozilla.com> | 2014-02-18 22:44:39 -0500 |
commit | 9119f1d06ac3c74f39d2fb7491ae97449be9e186 (patch) | |
tree | 50eda5736dcde2621e44a1c49fcbb1e5a33ef688 | |
parent | 2a406f8098709ea453cf3c01917058dee83b08bb (diff) | |
download | gcc-9119f1d06ac3c74f39d2fb7491ae97449be9e186.tar.gz |
use less indirection when passing a bitmap to walk_aliased_vdefs
-rw-r--r-- | gcc/ipa-prop.c | 6 | ||||
-rw-r--r-- | gcc/tree-sra.c | 4 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.c | 13 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.h | 2 | ||||
-rw-r--r-- | gcc/tree-ssa-dce.c | 2 |
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 |