diff options
author | Trevor Saunders <tsaunders@mozilla.com> | 2014-08-02 11:34:54 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2014-08-02 11:34:54 +0000 |
commit | b787e7a2c2c9be2f548d4c76ec324b71859851a4 (patch) | |
tree | b20f9df1d7e2cb3a642d2fab604f827c7d23712a /gcc/lto-cgraph.c | |
parent | 6e2830c3dbe0d4972519ddd44bd1b15b2b274ba2 (diff) | |
download | gcc-b787e7a2c2c9be2f548d4c76ec324b71859851a4.zip gcc-b787e7a2c2c9be2f548d4c76ec324b71859851a4.tar.gz gcc-b787e7a2c2c9be2f548d4c76ec324b71859851a4.tar.bz2 |
convert many uses of pointer_map to hash_map
gcc/c-family/
* cilk.c: Use hash_map instead of pointer_map.
gcc/c/
* c-typeck.c: Use hash_map instead of pointer_map.
gcc/cp/
* optimize.c, semantics.c: Use hash_map instead of pointer_map.
gcc/
* hash-map.h (default_hashmap_traits::mark_key_deleted):
Fix cast.
(hash_map::remove): New method.
(hash_map::traverse): New method.
* cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
pointer_map.
From-SVN: r213517
Diffstat (limited to 'gcc/lto-cgraph.c')
-rw-r--r-- | gcc/lto-cgraph.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index b246b53..12b649a 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -93,7 +93,7 @@ lto_symtab_encoder_new (bool for_input) lto_symtab_encoder_t encoder = XCNEW (struct lto_symtab_encoder_d); if (!for_input) - encoder->map = pointer_map_create (); + encoder->map = new hash_map<symtab_node *, size_t>; encoder->nodes.create (0); return encoder; } @@ -106,7 +106,7 @@ lto_symtab_encoder_delete (lto_symtab_encoder_t encoder) { encoder->nodes.release (); if (encoder->map) - pointer_map_destroy (encoder->map); + delete encoder->map; free (encoder); } @@ -120,7 +120,6 @@ lto_symtab_encoder_encode (lto_symtab_encoder_t encoder, symtab_node *node) { int ref; - void **slot; if (!encoder->map) { @@ -131,18 +130,17 @@ lto_symtab_encoder_encode (lto_symtab_encoder_t encoder, return ref; } - slot = pointer_map_contains (encoder->map, node); + size_t *slot = encoder->map->get (node); if (!slot || !*slot) { lto_encoder_entry entry = {node, false, false, false}; ref = encoder->nodes.length (); if (!slot) - slot = pointer_map_insert (encoder->map, node); - *slot = (void *) (intptr_t) (ref + 1); + encoder->map->put (node, ref + 1); encoder->nodes.safe_push (entry); } else - ref = (size_t) *slot - 1; + ref = *slot - 1; return ref; } @@ -153,15 +151,14 @@ bool lto_symtab_encoder_delete_node (lto_symtab_encoder_t encoder, symtab_node *node) { - void **slot, **last_slot; int index; lto_encoder_entry last_node; - slot = pointer_map_contains (encoder->map, node); + size_t *slot = encoder->map->get (node); if (slot == NULL || !*slot) return false; - index = (size_t) *slot - 1; + index = *slot - 1; gcc_checking_assert (encoder->nodes[index].node == node); /* Remove from vector. We do this by swapping node with the last element @@ -169,16 +166,14 @@ lto_symtab_encoder_delete_node (lto_symtab_encoder_t encoder, last_node = encoder->nodes.pop (); if (last_node.node != node) { - last_slot = pointer_map_contains (encoder->map, last_node.node); - gcc_checking_assert (last_slot && *last_slot); - *last_slot = (void *)(size_t) (index + 1); + gcc_assert (encoder->map->put (last_node.node, index + 1)); /* Move the last element to the original spot of NODE. */ encoder->nodes[index] = last_node; } /* Remove element from hash table. */ - *slot = NULL; + encoder->map->remove (node); return true; } |