lto-streamer-in.c (input_function): Add node parameter.
authorJan Hubicka <hubicka@ucw.cz>
Fri, 13 Dec 2019 18:43:20 +0000 (19:43 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 13 Dec 2019 18:43:20 +0000 (18:43 +0000)
* lto-streamer-in.c (input_function): Add node parameter.
(lto_read_body_or_constructor): Use it.

From-SVN: r279379

gcc/ChangeLog
gcc/lto-streamer-in.c

index f8a56a4c289427c9ba3d582c84124151d1bf785d..06b94444800a1ff3c58a1fdf5d7bb874dfcc9c2b 100644 (file)
@@ -1,3 +1,8 @@
+2019-12-13  Jan Hubicka  <hubicka@ucw.cz>
+
+       * lto-streamer-in.c (input_function): Add node parameter.
+       (lto_read_body_or_constructor): Use it.
+
 2019-12-13  Roman Zhuykov  <zhroma@ispras.ru>
 
        PR rtl-optimization/92591
index 128d764072613b9a63660d3c01fc44b5ac7081fc..675e1a7a15343cf37fbb28b3ee8a08ee7163fd62 100644 (file)
@@ -1022,13 +1022,13 @@ input_struct_function_base (struct function *fn, class data_in *data_in,
 
 static void
 input_function (tree fn_decl, class data_in *data_in,
-               class lto_input_block *ib, class lto_input_block *ib_cfg)
+               class lto_input_block *ib, class lto_input_block *ib_cfg,
+               cgraph_node *node)
 {
   struct function *fn;
   enum LTO_tags tag;
   gimple **stmts;
   basic_block bb;
-  struct cgraph_node *node;
 
   tag = streamer_read_record_start (ib);
   lto_tag_check (tag, LTO_function);
@@ -1064,9 +1064,6 @@ input_function (tree fn_decl, class data_in *data_in,
 
   gimple_register_cfg_hooks ();
 
-  node = cgraph_node::get (fn_decl);
-  if (!node)
-    node = cgraph_node::create (fn_decl);
   input_struct_function_base (fn, data_in, ib);
   input_cfg (ib_cfg, data_in, fn);
 
@@ -1293,7 +1290,8 @@ lto_read_body_or_constructor (struct lto_file_decl_data *file_data, struct symta
        {
          lto_input_block ib_cfg (data + cfg_offset, header->cfg_size,
                                  file_data->mode_table);
-         input_function (fn_decl, data_in, &ib_main, &ib_cfg);
+         input_function (fn_decl, data_in, &ib_main, &ib_cfg,
+                         dyn_cast <cgraph_node *>(node));
        }
       else
         input_constructor (fn_decl, data_in, &ib_main);