diff options
author | Jan Hubicka <jh@suse.cz> | 2013-08-03 10:23:55 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-08-03 08:23:55 +0000 |
commit | 0e8853eefb91d4a81bb45eb25db4dd95dc2cf1c4 (patch) | |
tree | 6893c12531b17830080c226b0ab4329896a5a588 /gcc/ipa-prop.h | |
parent | 563430f7f3c7d4c2358dd2acaf33258d7f0b0c57 (diff) | |
download | gcc-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.h | 12 |
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: */ |