diff options
author | Jan Hubicka <jh@suse.cz> | 2006-01-11 14:13:37 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-01-11 13:13:37 +0000 |
commit | ea99e0becf7057b7112a267b55e39e9b8c24db13 (patch) | |
tree | 7528e0c14251773ead6e3aa9eaaf90a59556ee1d /gcc/cgraph.h | |
parent | abcb0cdc2005f2cfb5ac9f1dedd5269b5f51c89f (diff) | |
download | gcc-ea99e0becf7057b7112a267b55e39e9b8c24db13.zip gcc-ea99e0becf7057b7112a267b55e39e9b8c24db13.tar.gz gcc-ea99e0becf7057b7112a267b55e39e9b8c24db13.tar.bz2 |
cgraph.c (cgraph_insert_node_to_hashtable): New function.
* cgraph.c (cgraph_insert_node_to_hashtable): New function.
* cgraph.h (cgraph_node): Add inline_decl.
(cgraph_insert_node_to_hashtable): Declare.
(save_inline_function_body): Declare.
* cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
clones.
(cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
(cgraph_function_versioning): Update call of tree_function_versioning.
(save_inline_function_body): New function.
* function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
* ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
(cgraph_default_inline_p): Likewise.
(cgraph_decide_inlining_incrementally): Likewise.
* tree-inline.c (inline_data): Kill saving_p add update_clones_p.
(copy_bb): Kill saving; do updating of clones.
(copy_cfg_body): Kill saving.
(initialize_inlined-parameters): Likewise.
(expand_call_inline): Likewise.
(save_body): Kill.
(tree_function_versioning): New parameter "update_clones".
(inlining_p): Kill saving.
* tree-inline.h (tree_function_versioning): Update prototype.
* tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
saving.
From-SVN: r109580
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 42a74f5..78b0fad 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -161,6 +161,11 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) bool externally_visible; /* Set for aliases once they got through assemble_alias. */ bool alias; + + /* In non-unit-at-a-time mode the function body of inline candidates is saved + into clone before compiling so the function in original form can be + inlined later. This pointer points to the clone. */ + tree inline_decl; }; struct cgraph_edge GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"))) @@ -225,6 +230,7 @@ extern GTY(()) struct cgraph_varpool_node *cgraph_varpool_nodes_queue; /* In cgraph.c */ void dump_cgraph (FILE *); void dump_cgraph_node (FILE *, struct cgraph_node *); +void cgraph_insert_node_to_hashtable (struct cgraph_node *node); void dump_varpool (FILE *); void dump_cgraph_varpool_node (FILE *, struct cgraph_varpool_node *); void cgraph_remove_edge (struct cgraph_edge *); @@ -281,6 +287,7 @@ void cgraph_reset_static_var_maps (void); void init_cgraph (void); struct cgraph_node *cgraph_function_versioning (struct cgraph_node *, varray_type, varray_type); +struct cgraph_node *save_inline_function_body (struct cgraph_node *); /* In ipa.c */ bool cgraph_remove_unreachable_nodes (bool, FILE *); |