aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-prop.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-08-03 10:23:55 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2013-08-03 08:23:55 +0000
commit0e8853eefb91d4a81bb45eb25db4dd95dc2cf1c4 (patch)
tree6893c12531b17830080c226b0ab4329896a5a588 /gcc/ipa-prop.h
parent563430f7f3c7d4c2358dd2acaf33258d7f0b0c57 (diff)
downloadgcc-0e8853eefb91d4a81bb45eb25db4dd95dc2cf1c4.zip
gcc-0e8853eefb91d4a81bb45eb25db4dd95dc2cf1c4.tar.gz
gcc-0e8853eefb91d4a81bb45eb25db4dd95dc2cf1c4.tar.bz2
ipa-cp.c (gather_context_independent_values): Use ipa_get_param_move_cost.
* ipa-cp.c (gather_context_independent_values): Use ipa_get_param_move_cost. (get_replacement_map): Remove PARAM; move parameter folding into tree-inline.c (create_specialized_node): Update. * ipa-prop.c (ipa_populate_param_decls): Do not look for origins; assert that we have gimple body; update move_cost. (count_formal_params): Assert that we have gimple body. (ipa_dump_param): New function. (ipa_alloc_node_params): Break out from ... (ipa_initialize_node_params): ... here. (ipa_get_vector_of_formal_parms): ICE when used in WPA. (ipa_write_node_info): Stream move costs. (ipa_read_node_info): Read move costs. (ipa_update_after_lto_read): Do not recompute node params. * ipa-prop.h (ipa_param_descriptor): Add move_cost. (ipa_get_param): Check we are not in WPA. (ipa_get_param_move_cost): New. * tree-inline.c (tree_function_versioning): Fold replacement as needed. * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only parm numbers to be present. * gcc.dg/ipa/ipa-1.c: Update. * gcc.dg/ipa/ipa-2.c: Update. * gcc.dg/ipa/ipa-3.c: Update. * gcc.dg/ipa/ipa-4.c: Update. * gcc.dg/ipa/ipa-5.c: Update. * gcc.dg/ipa/ipa-7.c: Update. * gcc.dg/ipa/ipa-8.c: Update. * gcc.dg/ipa/ipcp-1.c: Update. * gcc.dg/ipa/ipcp-2.c: Update. From-SVN: r201462
Diffstat (limited to 'gcc/ipa-prop.h')
-rw-r--r--gcc/ipa-prop.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index e3836e0..2ccac2f 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -320,6 +320,7 @@ struct ipa_param_descriptor
says how many there are. If any use could not be described by means of
ipa-prop structures, this is IPA_UNDESCRIBED_USE. */
int controlled_uses;
+ unsigned int move_cost : 31;
/* The parameter is used. */
unsigned used : 1;
};
@@ -377,9 +378,19 @@ ipa_get_param_count (struct ipa_node_params *info)
static inline tree
ipa_get_param (struct ipa_node_params *info, int i)
{
+ gcc_checking_assert (!flag_wpa);
return info->descriptors[i].decl;
}
+/* Return the move cost of Ith formal parameter of the function corresponding
+ to INFO. */
+
+static inline int
+ipa_get_param_move_cost (struct ipa_node_params *info, int i)
+{
+ return info->descriptors[i].move_cost;
+}
+
/* Set the used flag corresponding to the Ith formal parameter of the function
associated with INFO to VAL. */
@@ -653,6 +664,7 @@ int ipa_get_param_decl_index (struct ipa_node_params *, tree);
tree ipa_value_from_jfunc (struct ipa_node_params *info,
struct ipa_jump_func *jfunc);
unsigned int ipcp_transform_function (struct cgraph_node *node);
+void ipa_dump_param (FILE *, struct ipa_node_params *info, int i);
/* From tree-sra.c: */