aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-05-10 17:11:01 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2009-05-10 15:11:01 +0000
commit39ff5a967693c3aa56e8abf0e9c75fabe3335d8d (patch)
tree74ceb2f1c2ecc5f55f8c3f84dd6a925d1b0918c4 /gcc/cgraph.h
parent9a0c61875533558e047cb5ef140d9836ed475ab9 (diff)
downloadgcc-39ff5a967693c3aa56e8abf0e9c75fabe3335d8d.zip
gcc-39ff5a967693c3aa56e8abf0e9c75fabe3335d8d.tar.gz
gcc-39ff5a967693c3aa56e8abf0e9c75fabe3335d8d.tar.bz2
cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
* cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. * cgraph.c (cgraph_mark_address_taken_node): New function. (dump_cgraph_node): Dump new flag. * cgraph.h (struct cgraph_node): Add address_taken. (cgraph_mark_address_taken_node): New function. * cp/decl2.c (cxx_callgraph_analyze_expr): Use cgraph_mark_address_taken. * ipa.c (cgraph_postorder): Prioritize functions with address taken since new direct calls can be born. From-SVN: r147342
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index c1a1a0a..2e4201e 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -189,6 +189,8 @@ struct GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) cgraph_node {
/* Set when function must be output - it is externally visible
or its address is taken. */
unsigned needed : 1;
+ /* Set when function has address taken. */
+ unsigned address_taken : 1;
/* Set when decl is an abstract function pointed to by the
ABSTRACT_DECL_ORIGIN of a reachable function. */
unsigned abstract_and_needed : 1;
@@ -417,6 +419,7 @@ void cgraph_mark_if_needed (tree);
void cgraph_finalize_compilation_unit (void);
void cgraph_optimize (void);
void cgraph_mark_needed_node (struct cgraph_node *);
+void cgraph_mark_address_taken_node (struct cgraph_node *);
void cgraph_mark_reachable_node (struct cgraph_node *);
bool cgraph_inline_p (struct cgraph_edge *, cgraph_inline_failed_t *reason);
bool cgraph_preserve_function_body_p (tree);