diff options
author | Richard Biener <rguenther@suse.de> | 2013-06-24 12:17:16 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-06-24 12:17:16 +0000 |
commit | 7c5848b89955c3ec45a78630f23d610f13e3e47b (patch) | |
tree | 0b144aa71725e9242031811c26d608114f637c95 /gcc/dominance.c | |
parent | e04518ae25780abd0e0f70533de0f0ddb53f868c (diff) | |
download | gcc-7c5848b89955c3ec45a78630f23d610f13e3e47b.zip gcc-7c5848b89955c3ec45a78630f23d610f13e3e47b.tar.gz gcc-7c5848b89955c3ec45a78630f23d610f13e3e47b.tar.bz2 |
pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
2013-06-24 Richard Biener <rguenther@suse.de>
* pointer-set.h (struct pointer_set_t): Move here from
pointer-set.c.
(pointer_set_lookup): Declare.
(class pointer_map): New template class implementing a
generic pointer to T map.
(pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
pointer_map<T>::contains, pointer_map<T>::insert,
pointer_map<T>::traverse): New functions.
* pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
(pointer_set_lookup): New function.
(pointer_set_contains): Use pointer_set_lookup.
(pointer_set_insert): Likewise.
(insert_aux): Remove.
(struct pointer_map_t): Embed a pointer_set_t.
(pointer_map_create): Adjust.
(pointer_map_destroy): Likewise.
(pointer_map_contains): Likewise.
(pointer_map_insert): Likewise.
(pointer_map_traverse): Likewise.
* tree-streamer.h (struct streamer_tree_cache_d): Use a
pointer_map<unsigned> instead of a pointer_map_t.
* tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
(streamer_tree_cache_lookup): Likewise.
(streamer_tree_cache_create): Likewise.
(streamer_tree_cache_delete): Likewise.
* lto-streamer.h (struct lto_tree_ref_encoder): Use a
pointer_map<unsigned> instead of a pointer_map_t.
(lto_init_tree_ref_encoder): Adjust.
(lto_destroy_tree_ref_encoder): Likewise.
* lto-section-out.c (lto_output_decl_index): Likewise.
(lto_record_function_out_decl_state): Likewise.
* dominance.c (iterate_fix_dominators): Use pointer_map<int>.
From-SVN: r200367
Diffstat (limited to 'gcc/dominance.c')
-rw-r--r-- | gcc/dominance.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/dominance.c b/gcc/dominance.c index 5c96dad..569f1f4 100644 --- a/gcc/dominance.c +++ b/gcc/dominance.c @@ -1248,7 +1248,7 @@ iterate_fix_dominators (enum cdi_direction dir, vec<basic_block> bbs, size_t dom_i; edge e; edge_iterator ei; - struct pointer_map_t *map; + pointer_map<int> *map; int *parent, *son, *brother; unsigned int dir_index = dom_convert_dir_to_idx (dir); @@ -1336,15 +1336,15 @@ iterate_fix_dominators (enum cdi_direction dir, vec<basic_block> bbs, } /* Construct the graph G. */ - map = pointer_map_create (); + map = new pointer_map<int>; FOR_EACH_VEC_ELT (bbs, i, bb) { /* If the dominance tree is conservatively correct, split it now. */ if (conservative) set_immediate_dominator (CDI_DOMINATORS, bb, NULL); - *pointer_map_insert (map, bb) = (void *) (size_t) i; + *map->insert (bb) = i; } - *pointer_map_insert (map, ENTRY_BLOCK_PTR) = (void *) (size_t) n; + *map->insert (ENTRY_BLOCK_PTR) = n; g = new_graph (n + 1); for (y = 0; y < g->n_vertices; y++) @@ -1357,7 +1357,7 @@ iterate_fix_dominators (enum cdi_direction dir, vec<basic_block> bbs, if (dom == bb) continue; - dom_i = (size_t) *pointer_map_contains (map, dom); + dom_i = *map->contains (dom); /* Do not include parallel edges to G. */ if (!bitmap_set_bit ((bitmap) g->vertices[dom_i].data, i)) @@ -1368,7 +1368,7 @@ iterate_fix_dominators (enum cdi_direction dir, vec<basic_block> bbs, } for (y = 0; y < g->n_vertices; y++) BITMAP_FREE (g->vertices[y].data); - pointer_map_destroy (map); + delete map; /* Find the dominator tree of G. */ son = XNEWVEC (int, n + 1); |