summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-18 14:10:02 +0000
committerjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-18 14:10:02 +0000
commit00e1f01e202daa28722e658dcb573c1f10e53ea3 (patch)
treee8c86b76abdb454a38d3c0e0f799953c7b36fa05 /gcc/ipa-inline.c
parent19b7a51ee94ca58ab1f8c58ccc1cc6f390c3c377 (diff)
downloadgcc-00e1f01e202daa28722e658dcb573c1f10e53ea3.tar.gz
2009-11-18 Martin Jambor <mjambor@suse.cz>
* ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid. (lto_ipa_fixup_call_notes): Declare. * ipa-prop.c (ipa_note_param_call): Store gimple uid. (update_call_notes_after_inlining): Copy call stmt uid to the new edge. (ipa_write_param_call_note): New function. (ipa_read_param_call_note): New function (ipa_write_node_info): Write also param call notes. Removed a bogus comment, reformatted to fit 80 columns. (ipa_read_node_info): Read also param call notes. Removed a bogus comment. Remove ipa_edge_args_vector growth. (lto_ipa_fixup_call_notes): New function. * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook. * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect inlining regardless of flag_wpa. (cgraph_decide_inlining_of_small_functions): Likewise. (cgraph_decide_inlining): Likewise. (inline_read_summary): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154293 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index e9d831153fe..786c21c0ca3 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -334,7 +334,7 @@ cgraph_mark_inline_edge (struct cgraph_edge *e, bool update_original,
overall_size -= orig_size;
ncalls_inlined++;
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
return ipa_propagate_indirect_call_infos (curr, new_edges);
else
return false;
@@ -900,7 +900,7 @@ cgraph_decide_inlining_of_small_functions (void)
int min_size, max_size;
VEC (cgraph_edge_p, heap) *new_indirect_edges = NULL;
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
new_indirect_edges = VEC_alloc (cgraph_edge_p, heap, 8);
if (dump_file)
@@ -1047,10 +1047,10 @@ cgraph_decide_inlining_of_small_functions (void)
if (where->global.inlined_to)
where = where->global.inlined_to;
if (!cgraph_decide_recursive_inlining (where,
- flag_indirect_inlining && !flag_wpa
+ flag_indirect_inlining
? &new_indirect_edges : NULL))
continue;
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
add_new_edges_to_heap (heap, new_indirect_edges);
update_callee_keys (heap, where, updated_nodes);
}
@@ -1069,7 +1069,7 @@ cgraph_decide_inlining_of_small_functions (void)
}
callee = edge->callee;
cgraph_mark_inline_edge (edge, true, &new_indirect_edges);
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
add_new_edges_to_heap (heap, new_indirect_edges);
update_callee_keys (heap, callee, updated_nodes);
@@ -1138,7 +1138,7 @@ cgraph_decide_inlining (void)
int initial_size = 0;
cgraph_remove_function_insertion_hook (function_insertion_hook_holder);
- if (in_lto_p && flag_indirect_inlining && !flag_wpa)
+ if (in_lto_p && flag_indirect_inlining)
ipa_update_after_lto_read ();
max_count = 0;
@@ -1294,7 +1294,7 @@ cgraph_decide_inlining (void)
}
/* Free ipa-prop structures if they are no longer needed. */
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
free_all_ipa_structures_after_iinln ();
if (dump_file)
@@ -2001,7 +2001,7 @@ inline_transform (struct cgraph_node *node)
static void
inline_read_summary (void)
{
- if (flag_indirect_inlining && !flag_wpa)
+ if (flag_indirect_inlining)
{
ipa_register_cgraph_hooks ();
if (!flag_ipa_cp)
@@ -2044,7 +2044,7 @@ struct ipa_opt_pass_d pass_ipa_inline =
inline_write_summary, /* write_summary */
inline_read_summary, /* read_summary */
NULL, /* function_read_summary */
- NULL, /* stmt_fixup */
+ lto_ipa_fixup_call_notes, /* stmt_fixup */
0, /* TODOs */
inline_transform, /* function_transform */
NULL, /* variable_transform */