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/cp/optimize.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/cp/optimize.c')
-rw-r--r-- | gcc/cp/optimize.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index 3cd8047..6eeca4d 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -86,7 +86,7 @@ clone_body (tree clone, tree fn, void *arg_map) id.src_fn = fn; id.dst_fn = clone; id.src_cfun = DECL_STRUCT_FUNCTION (fn); - id.decl_map = (struct pointer_map_t *) arg_map; + id.decl_map = static_cast<hash_map<tree, tree> *> (arg_map); id.copy_decl = copy_decl_no_change; id.transform_call_graph_edges = CB_CGE_DUPLICATE; @@ -527,7 +527,7 @@ maybe_clone_body (tree fn) tree parm; tree clone_parm; int parmno; - struct pointer_map_t *decl_map; + hash_map<tree, tree> *decl_map; bool alias = false; clone = fns[idx]; @@ -587,7 +587,7 @@ maybe_clone_body (tree fn) } /* Remap the parameters. */ - decl_map = pointer_map_create (); + decl_map = new hash_map<tree, tree>; for (parmno = 0, parm = DECL_ARGUMENTS (fn), clone_parm = DECL_ARGUMENTS (clone); @@ -600,7 +600,7 @@ maybe_clone_body (tree fn) { tree in_charge; in_charge = in_charge_arg_for_name (DECL_NAME (clone)); - *pointer_map_insert (decl_map, parm) = in_charge; + decl_map->put (parm, in_charge); } else if (DECL_ARTIFICIAL (parm) && DECL_NAME (parm) == vtt_parm_identifier) @@ -611,19 +611,22 @@ maybe_clone_body (tree fn) if (DECL_HAS_VTT_PARM_P (clone)) { DECL_ABSTRACT_ORIGIN (clone_parm) = parm; - *pointer_map_insert (decl_map, parm) = clone_parm; + decl_map->put (parm, clone_parm); clone_parm = DECL_CHAIN (clone_parm); } /* Otherwise, map the VTT parameter to `NULL'. */ else - *pointer_map_insert (decl_map, parm) - = fold_convert (TREE_TYPE (parm), null_pointer_node); + { + tree t + = fold_convert (TREE_TYPE (parm), null_pointer_node); + decl_map->put (parm, t); + } } /* Map other parameters to their equivalents in the cloned function. */ else { - *pointer_map_insert (decl_map, parm) = clone_parm; + decl_map->put (parm, clone_parm); clone_parm = DECL_CHAIN (clone_parm); } } @@ -632,14 +635,14 @@ maybe_clone_body (tree fn) { parm = DECL_RESULT (fn); clone_parm = DECL_RESULT (clone); - *pointer_map_insert (decl_map, parm) = clone_parm; + decl_map->put (parm, clone_parm); } /* Clone the body. */ clone_body (clone, fn, decl_map); /* Clean up. */ - pointer_map_destroy (decl_map); + delete decl_map; } /* The clone can throw iff the original function can throw. */ |