diff options
author | Martin Jambor <mjambor@suse.cz> | 2009-11-18 15:10:02 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2009-11-18 15:10:02 +0100 |
commit | 661e733051230d4c325923b2a6bac6aa7c79b904 (patch) | |
tree | e8c86b76abdb454a38d3c0e0f799953c7b36fa05 /gcc/ipa-inline.c | |
parent | 827c5be4f719bbd9cbee6d27baaa4276b80e9c1d (diff) | |
download | gcc-661e733051230d4c325923b2a6bac6aa7c79b904.zip gcc-661e733051230d4c325923b2a6bac6aa7c79b904.tar.gz gcc-661e733051230d4c325923b2a6bac6aa7c79b904.tar.bz2 |
ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
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.
From-SVN: r154293
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index e9d8311..786c21c 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 */ |