aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-07-02 02:14:44 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-07-02 00:14:44 +0000
commitf6981e16c3c4e9e009e3b34d185f2be15c76171c (patch)
tree4d97ef1059d4e3e31ef7dfafa8353a8924c2bf2f
parentd1c608553b0f6cec5ddc3e83c0198fa37ab9fe25 (diff)
downloadgcc-f6981e16c3c4e9e009e3b34d185f2be15c76171c.zip
gcc-f6981e16c3c4e9e009e3b34d185f2be15c76171c.tar.gz
gcc-f6981e16c3c4e9e009e3b34d185f2be15c76171c.tar.bz2
cgraphunit.c (cgraph_finalize_function): Set finalized.
* 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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphunit.c19
3 files changed, 19 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9142d5c..716fb7a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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 *.
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 91f99bf..bbf1c28 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -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
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index e7023a4..75eae99 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -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)
{