From 6cf67b62c8cda035dccaca2ae6ff94d560b37a6f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sun, 10 Nov 2019 12:25:38 +0100 Subject: cgraph.h (struct cgraph_node): Add ipcp_clone flag. * cgraph.h (struct cgraph_node): Add ipcp_clone flag. (cgraph_node::create_virtual_clone): Copy it. * ipa-cp.c (ipcp_versionable_function_p): Watch for missing summaries. (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too. (ipcp_verify_propagated_values): Do not verify nodes where ipcp is disabled. (propagate_constants_across_call): If callee is not analyzed, give up. (propagate_constants_topo): Lower to bottom latties of all callees of functions with ipa-cp disabled. (ipcp_propagate_stage): Skip functions with ipa-cp disabled. (cgraph_edge_brings_value_p): Check for availability first. (create_specialized_node): Set ipcp_clone. (ipcp_store_bits_results): Check that info is present. * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze thunks. (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be conservative when callee summary is missing. (remap_edge_summaries): Lookup call summary only when needed. * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary. * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params): Use get_create. (ipa_analyze_node): Use get_create. (propagate_controlled_uses): Do not propagate when function is not analyzed. (ipa_propagate_indirect_call_infos): Remove summary of inline clone. (ipa_read_node_info): Use get_create. * ipa-prop.h (IPA_NODE_REF): Use get. (IPA_NODE_REF_GET_CREATE): New. From-SVN: r278016 --- gcc/ipa-icf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/ipa-icf.c') diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c index 67dd56f..10aa4b7 100644 --- a/gcc/ipa-icf.c +++ b/gcc/ipa-icf.c @@ -484,7 +484,7 @@ sem_function::param_used_p (unsigned int i) class ipa_node_params *parms_info = IPA_NODE_REF (get_node ()); - if (vec_safe_length (parms_info->descriptors) <= i) + if (!parms_info || vec_safe_length (parms_info->descriptors) <= i) return true; return ipa_is_param_used (IPA_NODE_REF (get_node ()), i); -- cgit v1.1