aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/optimize.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-03-31 14:07:29 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-03-31 14:07:29 +0000
commit6be42dd4a21f046a05ccbb5c27cda488bd1c5113 (patch)
treee35d13b4ee94edc9550a7d68aaf4c9f58eb9c1b3 /gcc/cp/optimize.c
parentd393153e7fb5a4bc1ed79b72c5c6d6c6ccc195b6 (diff)
downloadgcc-6be42dd4a21f046a05ccbb5c27cda488bd1c5113.zip
gcc-6be42dd4a21f046a05ccbb5c27cda488bd1c5113.tar.gz
gcc-6be42dd4a21f046a05ccbb5c27cda488bd1c5113.tar.bz2
omp-low.c (splay-tree.h): Include.
2007-03-31 Richard Guenther <rguenther@suse.de> * omp-low.c (splay-tree.h): Include. (lookup_decl): Replace splay-tree usage by pointer-map. (maybe_lookup_decl): Likewise. (new_omp_context): Likewise. (delete_omp_context): Likewise. * gimplify.c (splay-tree.h): Include. * tree-inline.c (insert_decl_map): Replace splay-tree usage by pointer-map. (remap_ssa_name): Likewise. (remap_decl): Likewise. (remap_type_1): Likewise. (remap_type): Likewise. (copy_body_r): Likewise. (expand_call_inline): Likewise. (clone_body): Likewise. (copy_tree_r): Likewise. (remap_save_expr): Likewise. (unsave_r): Likewise. (unsave_expr_now): Likewise. (tree_function_versioning): Likewise. (build_duplicate_type): Likewise. * tree-inline.h (pointer-set.h): Include instead of splay-tree.h. (struct copy_body_data): Replace splay-tree by pointer-map. * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h, not $(SPLAY_TREE_H). (gimplify.o): Depend on $(SPLAY_TREE_H). (omp-low.p): Likewise. * optimize.c (maybe_clone_body): Replace splay-tree usage by pointer-map. From-SVN: r123381
Diffstat (limited to 'gcc/cp/optimize.c')
-rw-r--r--gcc/cp/optimize.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 839c4e6..1b50825 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -99,7 +99,7 @@ maybe_clone_body (tree fn)
tree parm;
tree clone_parm;
int parmno;
- splay_tree decl_map;
+ struct pointer_map_t *decl_map;
/* Update CLONE's source position information to match FN's. */
DECL_SOURCE_LOCATION (clone) = DECL_SOURCE_LOCATION (fn);
@@ -139,7 +139,7 @@ maybe_clone_body (tree fn)
start_preparsed_function (clone, NULL_TREE, SF_PRE_PARSED);
/* Remap the parameters. */
- decl_map = splay_tree_new (splay_tree_compare_pointers, NULL, NULL);
+ decl_map = pointer_map_create ();
for (parmno = 0,
parm = DECL_ARGUMENTS (fn),
clone_parm = DECL_ARGUMENTS (clone);
@@ -152,9 +152,7 @@ maybe_clone_body (tree fn)
{
tree in_charge;
in_charge = in_charge_arg_for_name (DECL_NAME (clone));
- splay_tree_insert (decl_map,
- (splay_tree_key) parm,
- (splay_tree_value) in_charge);
+ *pointer_map_insert (decl_map, parm) = in_charge;
}
else if (DECL_ARTIFICIAL (parm)
&& DECL_NAME (parm) == vtt_parm_identifier)
@@ -165,26 +163,18 @@ maybe_clone_body (tree fn)
if (DECL_HAS_VTT_PARM_P (clone))
{
DECL_ABSTRACT_ORIGIN (clone_parm) = parm;
- splay_tree_insert (decl_map,
- (splay_tree_key) parm,
- (splay_tree_value) clone_parm);
+ *pointer_map_insert (decl_map, parm) = clone_parm;
clone_parm = TREE_CHAIN (clone_parm);
}
/* Otherwise, map the VTT parameter to `NULL'. */
else
- {
- splay_tree_insert (decl_map,
- (splay_tree_key) parm,
- (splay_tree_value) null_pointer_node);
- }
+ *pointer_map_insert (decl_map, parm) = null_pointer_node;
}
/* Map other parameters to their equivalents in the cloned
function. */
else
{
- splay_tree_insert (decl_map,
- (splay_tree_key) parm,
- (splay_tree_value) clone_parm);
+ *pointer_map_insert (decl_map, parm) = clone_parm;
clone_parm = TREE_CHAIN (clone_parm);
}
}
@@ -193,14 +183,13 @@ maybe_clone_body (tree fn)
{
parm = DECL_RESULT (fn);
clone_parm = DECL_RESULT (clone);
- splay_tree_insert (decl_map, (splay_tree_key) parm,
- (splay_tree_value) clone_parm);
+ *pointer_map_insert (decl_map, parm) = clone_parm;
}
/* Clone the body. */
clone_body (clone, fn, decl_map);
/* Clean up. */
- splay_tree_delete (decl_map);
+ pointer_map_destroy (decl_map);
/* The clone can throw iff the original function can throw. */
cp_function_chain->can_throw = !TREE_NOTHROW (fn);