cgraphunit.c (cgraph_finalize_function): Set finalized.
authorJan Hubicka <jh@suse.cz>
Wed, 2 Jul 2003 00:14:44 +0000 (02:14 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 2 Jul 2003 00:14:44 +0000 (00:14 +0000)
* cgraphunit.c (cgraph_finalize_function): Set finalized.
(cgraph_finalize_function): Do not examine inlinablility.
(cgraph_finalize_compilation_unit): Do it here.
* cgraph.h (cgraph_local_info): Add finalized field.

From-SVN: r68803

gcc/ChangeLog
gcc/cgraph.h
gcc/cgraphunit.c

index 9142d5c461503780baed9cbf7d70b0002a3a74ac..716fb7a4dda6509db74486c796c7900e35ab6a06 100644 (file)
@@ -1,3 +1,10 @@
+Wed Jul  2 02:12:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_finalize_function): Set finalized.
+       (cgraph_finalize_function): Do not examine inlinablility.
+       (cgraph_finalize_compilation_unit): Do it here.
+       * cgraph.h (cgraph_local_info): Add finalized field.
+
 2003-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *.
index 91f99bf2e7163843cc17fa55785c97c2e6361321..bbf1c2886182e2539c8303fadf4c086767721f83 100644 (file)
@@ -35,6 +35,8 @@ struct cgraph_local_info GTY(())
   /* Set when function can be inlined once (false only for functions calling
      alloca, using varargs and so on).  */
   bool can_inline_once;
+  /* Set once it has been finalized so we consider it to be output.  */
+  bool finalized;
 };
 
 /* Information about the function that needs to be computed globally
index e7023a4014be4a8226d3f1725e11ab5f6af0801a..75eae991d951f8717353703aea5a39021a3c0d3f 100644 (file)
@@ -54,6 +54,7 @@ cgraph_finalize_function (decl, body)
   struct cgraph_node *node = cgraph_node (decl);
 
   node->decl = decl;
+  node->local.finalized = true;
 
   if (/* Externally visible functions must be output.  The exception are
         COMDAT functions that must be output only when they are needed.
@@ -74,15 +75,6 @@ cgraph_finalize_function (decl, body)
       cgraph_mark_needed_node (node, 1);
     }
 
-  if (!node->needed && !DECL_COMDAT (node->decl))
-    node->local.can_inline_once = tree_inlinable_function_p (decl, 1);
-  else
-    node->local.can_inline_once = 0;
-  if (flag_inline_trees)
-    node->local.inline_many = tree_inlinable_function_p (decl, 0);
-  else
-    node->local.inline_many = 0;
-
   (*debug_hooks->deferred_inline_function) (decl);
 }
 
@@ -173,6 +165,15 @@ cgraph_finalize_compilation_unit ()
       if (lang_hooks.callgraph.lower_function)
        (*lang_hooks.callgraph.lower_function) (decl);
 
+      if (!node->needed && !DECL_COMDAT (node->decl))
+       node->local.can_inline_once = tree_inlinable_function_p (decl, 1);
+      else
+       node->local.can_inline_once = 0;
+      if (flag_inline_trees)
+       node->local.inline_many = tree_inlinable_function_p (decl, 0);
+      else
+       node->local.inline_many = 0;
+
       /* At the moment frontend automatically emits all nested functions.  */
       if (node->nested)
        {