aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-prop.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-10-27 09:11:57 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-10-27 08:11:57 +0000
commita33c028eb38268b5084ebc4cc17a1cb64b3a838b (patch)
treeec4950bbbb492e328ff374d375ea1b29cfecfcf3 /gcc/ipa-prop.h
parenta088d7b10f296dbd57bccbac1bfcf8abb207b034 (diff)
downloadgcc-a33c028eb38268b5084ebc4cc17a1cb64b3a838b.zip
gcc-a33c028eb38268b5084ebc4cc17a1cb64b3a838b.tar.gz
gcc-a33c028eb38268b5084ebc4cc17a1cb64b3a838b.tar.bz2
ipa-cp.c (propagate_constants_across_call): If args are not available just drop everything to varying.
* ipa-cp.c (propagate_constants_across_call): If args are not available just drop everything to varying. (find_aggregate_values_for_callers_subset): Watch for missing edge summary. (find_more_scalar_values_for_callers_subs): Likewise. * ipa-prop.c (ipa_compute_jump_functions_for_edge, update_jump_functions_after_inlining, propagate_controlled_uses): Watch for missing summaries. (ipa_propagate_indirect_call_infos): Remove summary after propagation is finished. (ipa_write_node_info): Watch for missing summaries. (ipa_read_edge_info): Create new ref. (ipa_edge_args_sum_t): Add remove. (IPA_EDGE_REF_GET_CREATE): New macro. * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing edge summary. (remap_edge_change_prob): Likewise. From-SVN: r277484
Diffstat (limited to 'gcc/ipa-prop.h')
-rw-r--r--gcc/ipa-prop.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index aba996f..6811ed7 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -640,6 +640,11 @@ class GTY((user)) ipa_edge_args_sum_t : public call_summary <ipa_edge_args *>
ipa_edge_args_sum_t (symbol_table *table, bool ggc)
: call_summary<ipa_edge_args *> (table, ggc) { }
+ void remove (cgraph_edge *edge)
+ {
+ call_summary <ipa_edge_args *>::remove (edge);
+ }
+
/* Hook that is called by summary when an edge is removed. */
virtual void remove (cgraph_edge *cs, ipa_edge_args *args);
/* Hook that is called by summary when an edge is duplicated. */
@@ -679,7 +684,8 @@ extern GTY(()) function_summary <ipcp_transformation *> *ipcp_transformation_sum
/* Return the associated parameter/argument info corresponding to the given
node/edge. */
#define IPA_NODE_REF(NODE) (ipa_node_params_sum->get_create (NODE))
-#define IPA_EDGE_REF(EDGE) (ipa_edge_args_sum->get_create (EDGE))
+#define IPA_EDGE_REF(EDGE) (ipa_edge_args_sum->get (EDGE))
+#define IPA_EDGE_REF_GET_CREATE(EDGE) (ipa_edge_args_sum->get_create (EDGE))
/* This macro checks validity of index returned by
ipa_get_param_decl_index function. */
#define IS_VALID_JUMP_FUNC_INDEX(I) ((I) != -1)