diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-01 22:22:57 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-01 22:22:57 +0000 |
commit | 9e169c4bf36a38689550c059570c57efbf00a6fb (patch) | |
tree | 95e6800f7ac2a49ff7f799d96f04172320e70ac0 /gcc/ipa-cp.c | |
parent | 6170dfb6edfb7b19f8ae5209b8f948fe0076a4ad (diff) | |
download | gcc-vect256.tar.gz |
Merged trunk at revision 161680 into branch.vect256
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/vect256@161681 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-cp.c')
-rw-r--r-- | gcc/ipa-cp.c | 37 |
1 files changed, 13 insertions, 24 deletions
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index f5a6fcbdf1d..8f9937320a1 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -172,23 +172,14 @@ static void ipcp_init_cloned_node (struct cgraph_node *orig_node, struct cgraph_node *new_node) { - ipa_check_create_node_params (); - ipa_initialize_node_params (new_node); + gcc_checking_assert (ipa_node_params_vector + && (VEC_length (ipa_node_params_t, + ipa_node_params_vector) + > (unsigned) cgraph_max_uid)); + gcc_checking_assert (IPA_NODE_REF (new_node)->params); IPA_NODE_REF (new_node)->ipcp_orig_node = orig_node; } -/* Perform intraprocedrual analysis needed for ipcp. */ -static void -ipcp_analyze_node (struct cgraph_node *node) -{ - /* Unreachable nodes should have been eliminated before ipcp. */ - gcc_assert (node->needed || node->reachable); - - node->local.versionable = tree_versionable_function_p (node->decl); - ipa_initialize_node_params (node); - ipa_detect_param_modifications (node); -} - /* Return scale for NODE. */ static inline gcov_type ipcp_get_node_scale (struct cgraph_node *node) @@ -611,6 +602,7 @@ ipcp_compute_node_scale (struct cgraph_node *node) /* Initialization and computation of IPCP data structures. This is the initial intraprocedural analysis of functions, which gathers information to be propagated later on. */ + static void ipcp_init_stage (void) { @@ -618,16 +610,13 @@ ipcp_init_stage (void) for (node = cgraph_nodes; node; node = node->next) if (node->analyzed) - ipcp_analyze_node (node); - for (node = cgraph_nodes; node; node = node->next) - { - if (!node->analyzed) - continue; + { + /* Unreachable nodes should have been eliminated before ipcp. */ + gcc_assert (node->needed || node->reachable); - ipa_analyze_params_uses (node); - /* building jump functions */ - ipa_compute_jump_functions (node); - } + node->local.versionable = tree_versionable_function_p (node->decl); + ipa_analyze_node (node); + } } /* Return true if there are some formal parameters whose value is IPA_TOP (in @@ -838,7 +827,7 @@ ipcp_create_replace_map (tree parm_tree, struct ipcp_lattice *lat) struct ipa_replace_map *replace_map; tree const_val; - replace_map = GGC_NEW (struct ipa_replace_map); + replace_map = ggc_alloc_ipa_replace_map (); const_val = build_const_val (lat, TREE_TYPE (parm_tree)); if (dump_file) { |