aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2014-08-04 13:56:50 +0200
committerMartin Liska <marxin@gcc.gnu.org>2014-08-04 11:56:50 +0000
commit31acf1bb1163d7f306bbcda8149e6b55d465cc02 (patch)
tree2217af79011362dc9a023ba16850a1a06b4a7c2b /gcc/cgraphunit.c
parent890e586486bb82edc724fbf1a1685bcb713996ef (diff)
downloadgcc-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.c23
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: