diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-03 17:22:58 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-03 17:22:58 +0000 |
commit | 19ad01f71bd1a53275a57ae41312131b4017d73b (patch) | |
tree | 29d6574c5d8892da7a62fdb54c7eabbacb56e4b1 /gcc/cgraph.h | |
parent | cc80225a88f5280f1d9984d2a798ff1b1ad56fc6 (diff) | |
download | gcc-19ad01f71bd1a53275a57ae41312131b4017d73b.tar.gz |
* cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
replace hash by pointer map.
(cgraph_node_set_element_def, cgraph_node_set_element,
const_cgraph_node_set_element, varpool_node_set_element_def,
varpool_node_set_element, const_varpool_node_set_element): Remove.
(free_cgraph_node_set, free_varpool_node_set): New function.
(cgraph_node_set_size, varpool_node_set_size): Use vector size.
* tree-emutls.c: Free varpool node set.
* ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
Move here from ipa.c; implement using pointer_map
* ipa.c (cgraph_node_set_new, cgraph_node_set_add,
cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
debug_cgraph_node_set, varpool_node_set_new,
varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
dump_varpool_node_set, debug_varpool_node_set):
Move to ipa-uitls.c.
* lto/lto.c (ltrans_partition_def): Remove GTY annotations.
(ltrans_partitions): Move to heap.
(new_partition): Update.
(free_ltrans_partitions): New function.
(lto_wpa_write_files): Use it.
* passes.c (ipa_write_summaries): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173334 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 251b9c882d5..35d1a9d791c 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -256,10 +256,10 @@ DEF_VEC_ALLOC_P(cgraph_node_ptr,gc); /* A cgraph node set is a collection of cgraph nodes. A cgraph node can appear in multiple sets. */ -struct GTY(()) cgraph_node_set_def +struct cgraph_node_set_def { - htab_t GTY((param_is (struct cgraph_node_set_element_def))) hashtab; - VEC(cgraph_node_ptr, gc) *nodes; + struct pointer_map_t *map; + VEC(cgraph_node_ptr, heap) *nodes; }; typedef struct varpool_node *varpool_node_ptr; @@ -270,10 +270,10 @@ DEF_VEC_ALLOC_P(varpool_node_ptr,gc); /* A varpool node set is a collection of varpool nodes. A varpool node can appear in multiple sets. */ -struct GTY(()) varpool_node_set_def +struct varpool_node_set_def { - htab_t GTY((param_is (struct varpool_node_set_element_def))) hashtab; - VEC(varpool_node_ptr, gc) *nodes; + struct pointer_map_t * map; + VEC(varpool_node_ptr, heap) *nodes; }; typedef struct cgraph_node_set_def *cgraph_node_set; @@ -288,17 +288,6 @@ DEF_VEC_P(varpool_node_set); DEF_VEC_ALLOC_P(varpool_node_set,gc); DEF_VEC_ALLOC_P(varpool_node_set,heap); -/* A cgraph node set element contains an index in the vector of nodes in - the set. */ -struct GTY(()) cgraph_node_set_element_def -{ - struct cgraph_node *node; - HOST_WIDE_INT index; -}; - -typedef struct cgraph_node_set_element_def *cgraph_node_set_element; -typedef const struct cgraph_node_set_element_def *const_cgraph_node_set_element; - /* Iterator structure for cgraph node sets. */ typedef struct { @@ -306,17 +295,6 @@ typedef struct unsigned index; } cgraph_node_set_iterator; -/* A varpool node set element contains an index in the vector of nodes in - the set. */ -struct GTY(()) varpool_node_set_element_def -{ - struct varpool_node *node; - HOST_WIDE_INT index; -}; - -typedef struct varpool_node_set_element_def *varpool_node_set_element; -typedef const struct varpool_node_set_element_def *const_varpool_node_set_element; - /* Iterator structure for varpool node sets. */ typedef struct { @@ -632,6 +610,7 @@ void cgraph_node_set_add (cgraph_node_set, struct cgraph_node *); void cgraph_node_set_remove (cgraph_node_set, struct cgraph_node *); void dump_cgraph_node_set (FILE *, cgraph_node_set); void debug_cgraph_node_set (cgraph_node_set); +void free_cgraph_node_set (cgraph_node_set); varpool_node_set varpool_node_set_new (void); varpool_node_set_iterator varpool_node_set_find (varpool_node_set, @@ -640,6 +619,7 @@ void varpool_node_set_add (varpool_node_set, struct varpool_node *); void varpool_node_set_remove (varpool_node_set, struct varpool_node *); void dump_varpool_node_set (FILE *, varpool_node_set); void debug_varpool_node_set (varpool_node_set); +void free_varpool_node_set (varpool_node_set); void ipa_discover_readonly_nonaddressable_vars (void); bool cgraph_comdat_can_be_unshared_p (struct cgraph_node *); @@ -763,7 +743,7 @@ cgraph_node_in_set_p (struct cgraph_node *node, cgraph_node_set set) static inline size_t cgraph_node_set_size (cgraph_node_set set) { - return htab_elements (set->hashtab); + return VEC_length (cgraph_node_ptr, set->nodes); } /* Return true if iterator VSI points to nothing. */ @@ -811,7 +791,7 @@ varpool_node_in_set_p (struct varpool_node *node, varpool_node_set set) static inline size_t varpool_node_set_size (varpool_node_set set) { - return htab_elements (set->hashtab); + return VEC_length (varpool_node_ptr, set->nodes); } /* Uniquize all constants that appear in memory. |