diff options
author | Martin Liska <mliska@suse.cz> | 2014-08-04 13:56:50 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2014-08-04 11:56:50 +0000 |
commit | 31acf1bb1163d7f306bbcda8149e6b55d465cc02 (patch) | |
tree | 2217af79011362dc9a023ba16850a1a06b4a7c2b /gcc/cgraphunit.c | |
parent | 890e586486bb82edc724fbf1a1685bcb713996ef (diff) | |
download | gcc-31acf1bb1163d7f306bbcda8149e6b55d465cc02.zip gcc-31acf1bb1163d7f306bbcda8149e6b55d465cc02.tar.gz gcc-31acf1bb1163d7f306bbcda8149e6b55d465cc02.tar.bz2 |
IPA C++ refactoring 3/N
* cgraph.h (csi_end_p): Removed.
(csi_next): Likewise.
(csi_node): Likewise.
(csi_start): Likewise.
(cgraph_node_in_set_p): Likewise.
(cgraph_node_set_size): Likewise.
(vsi_end_p): Likewise.
(vsi_next): Likewise.
(vsi_node): Likewise.
(vsi_start): Likewise.
(varpool_node_set_size): Likewise.
(cgraph_node_set_nonempty_p): Likewise.
(varpool_node_set_nonempty_p): Likewise.
* cgraphunit.c (cgraph_process_new_functions): vec replaces
cgraph_node_set.
* ipa-inline-transform.c: Likewise.
* ipa-utils.c (cgraph_node_set_new): Removed.
(cgraph_node_set_add): Likewise.
(cgraph_node_set_remove): Likewise.
(cgraph_node_set_find): Likewise.
(dump_cgraph_node_set): Likewise.
(debug_cgraph_node_set): Likewise.
(free_cgraph_node_set): Likewise.
(varpool_node_set_new): Likewise.
(varpool_node_set_add): Likewise.
(varpool_node_set_remove): Likewise.
(varpool_node_set_find): Likewise.
(dump_varpool_node_set): Likewise.
(free_varpool_node_set): Likewise.
(debug_varpool_node_set): Likewise.
* tree-emutls.c (struct tls_var_data):
(emutls_index): Removed.
(emutls_decl): Likewise.
(gen_emutls_addr): Function implementation uses newly added
hash_map<varpool_node *, tls_var_data>.
(clear_access_vars): Likewise.
(create_emultls_var): Likewise.
(ipa_lower_emutls): Likewise.
(reset_access): New function.
From-SVN: r213573
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r-- | gcc/cgraphunit.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index acc441c..d9acc65 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -215,7 +215,7 @@ along with GCC; see the file COPYING3. If not see /* Queue of cgraph nodes scheduled to be added into cgraph. This is a secondary queue used during optimization to accommodate passes that may generate new functions that need to be optimized and expanded. */ -cgraph_node_set cgraph_new_nodes; +vec<cgraph_node *> cgraph_new_nodes; static void expand_all_functions (void); static void mark_functions_to_output (void); @@ -300,17 +300,16 @@ void cgraph_process_new_functions (void) { tree fndecl; - struct cgraph_node *node; - cgraph_node_set_iterator csi; - if (!cgraph_new_nodes) + if (!cgraph_new_nodes.exists ()) return; + handle_alias_pairs (); /* Note that this queue may grow as its being processed, as the new functions may generate new ones. */ - for (csi = csi_start (cgraph_new_nodes); !csi_end_p (csi); csi_next (&csi)) + for (unsigned i = 0; i < cgraph_new_nodes.length (); i++) { - node = csi_node (csi); + cgraph_node *node = cgraph_new_nodes[i]; fndecl = node->decl; switch (cgraph_state) { @@ -357,8 +356,8 @@ cgraph_process_new_functions (void) break; } } - free_cgraph_node_set (cgraph_new_nodes); - cgraph_new_nodes = NULL; + + cgraph_new_nodes.release (); } /* As an GCC extension we allow redefinition of the function. The @@ -501,9 +500,7 @@ cgraph_node::add_new_function (tree fndecl, bool lowered) node = cgraph_node::get_create (fndecl); if (lowered) node->lowered = true; - if (!cgraph_new_nodes) - cgraph_new_nodes = cgraph_node_set_new (); - cgraph_node_set_add (cgraph_new_nodes, node); + cgraph_new_nodes.safe_push (node); break; case CGRAPH_STATE_IPA: @@ -529,9 +526,7 @@ cgraph_node::add_new_function (tree fndecl, bool lowered) } if (lowered) node->lowered = true; - if (!cgraph_new_nodes) - cgraph_new_nodes = cgraph_node_set_new (); - cgraph_node_set_add (cgraph_new_nodes, node); + cgraph_new_nodes.safe_push (node); break; case CGRAPH_STATE_FINISHED: |