Hello,

when working on call summaries, I have found a weird function
ipa_update_after_lto_read which currently only makes sure that IPA-CP
function and edge summaries exist, at times when they already have to
exist.

So I did some digging in history and found out that originally the
function was meant for setting a called_with_var_arguments flags where
appropriate after LTO stream-in.  We have however removed that flag in
2011 and the function is basically useless since then (although only
with call summaries it is definitely a no-OP).  Thus, I'll propose to
remove it next stage1.

Thanks,

Martin

2017-02-27  Martin Jambor  <mjam...@suse.cz>

        * ipa-prop.c (ipa_update_after_lto_read): Removed.
        * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
        * ipa-cp.c (ipcp_propagate_stage): Do not call
        ipa_update_after_lto_read.
        * ipa-inline.c (ipa_inline): Likewise.
---
 gcc/ipa-cp.c     |  4 ----
 gcc/ipa-inline.c |  3 ---
 gcc/ipa-prop.c   | 11 -----------
 gcc/ipa-prop.h   |  1 -
 4 files changed, 19 deletions(-)

diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index aa3c9973a66..6a6467ce8ba 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3234,10 +3234,6 @@ ipcp_propagate_stage (struct ipa_topo_info *topo)
   if (dump_file)
     fprintf (dump_file, "\n Propagating constants:\n\n");
 
-  if (in_lto_p)
-    ipa_update_after_lto_read ();
-
-
   FOR_EACH_DEFINED_FUNCTION (node)
   {
     struct ipa_node_params *info = IPA_NODE_REF (node);
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 4843f8a2f8e..b681c568c89 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2379,9 +2379,6 @@ ipa_inline (void)
 
   order = XCNEWVEC (struct cgraph_node *, symtab->cgraph_count);
 
-  if (in_lto_p && optimize)
-    ipa_update_after_lto_read ();
-
   if (dump_file)
     dump_inline_summaries (dump_file);
 
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 6d598763d02..47936a92adb 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -5096,17 +5096,6 @@ ipa_prop_read_jump_functions (void)
     }
 }
 
-/* After merging units, we can get mismatch in argument counts.
-   Also decl merging might've rendered parameter lists obsolete.
-   Also compute called_with_variable_arg info.  */
-
-void
-ipa_update_after_lto_read (void)
-{
-  ipa_check_create_node_params ();
-  ipa_check_create_edge_args ();
-}
-
 void
 write_ipcp_transformation_info (output_block *ob, cgraph_node *node)
 {
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index 4d8ee0d351d..bf5d02f8e3a 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -867,7 +867,6 @@ void ipa_prop_write_jump_functions (void);
 void ipa_prop_read_jump_functions (void);
 void ipcp_write_transformation_summaries (void);
 void ipcp_read_transformation_summaries (void);
-void ipa_update_after_lto_read (void);
 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);
-- 
2.11.1

Reply via email to