Hi Jan,

> this patch makes edge summaries to use call_summary template and renames them
> as they are not inliner specific for few years.
>
> Bootstrapped/regtested x86_64-linux.
>
> Honza
>
>       * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
>       inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
>       (inline_edge_summary_vec): Turn into ...
>       (ipa_call_summaries): ... this one.
>       (redirect_to_unreachable, edge_set_predicate,
>       evaluate_properties_for_edge, inline_summary_alloc,
>       reset_ipa_call_summary, reset_inline_summary,
>       inline_summary_t::duplicate): Update.
>       (inline_edge_duplication_hook): Turn to ...
>       (ipa_call_summary_t::duplicate): ... this one.
>       (inline_edge_removal_hook): Turn to ...
>       (ipa_call_summary_t::remove): ... this one.
>       (dump_inline_edge_summary): Turn to ...
>       (dump_ipa_call_summary): ... this one.
>       (estimate_function_body_sizes): Update.
>       (inline_update_callee_summaries): Update.
>       (remap_edge_change_prob): Update.
>       (remap_edge_summaries): Update.
>       (inline_merge_summary): Update.
>       (do_estimate_edge_time): Update.
>       (inline_generate_summary): Update.
>       (inline_read_section): Update.
>       (inline_read_summary): Update.
>       (inline_free_summary): Update.
>       * ipa-inline.c (can_inline_edge_p): Update.
>       (compute_inlined_call_time): Update.
>       (want_inline_small_function_p): Update.
>       (edge_badness): Update.
>       (early_inliner): Update.
>       * ipa-inline.h (inline_edge_summary): Turn to ...
>       (ipa_call_summary): ... this one.
>       (ipa_call_summary_t): New class.
>       (inline_edge_summary_t, inline_edge_summary_vec): Remove.
>       (ipa_call_summaries): New.
>       (inline_edge_summary): Remove.
>       (estimate_edge_growth): Update.
>       * ipa-profile.c (ipa_propagate_frequency_1): Update.
>       * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
>       * ipa-split.c (execute_split_functions): Update.
>       * ipa.c (symbol_table::remove_unreachable_nodes): Update.

between r248242 and r248262, a very large number of IPA-related
testsuite regressions occured, e.g. on x86_64-pc-linux-gnu, but also on
sparc-sun-solaris2.12:

+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target" 2
+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-tree-dump-times optimized 
"return 2" 3
+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target" 2
+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-tree-dump-times optimized 
"return 2" 3
+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target" 2
+FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-tree-dump-times optimized 
"return 2" 3
+FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++11  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target[^\\\\n]*A::foo" 1
+FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++14  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target[^\\\\n]*A::foo" 1
+FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++98  scan-ipa-dump-times inline 
"Discovered a virtual call to a known target[^\\\\n]*A::foo" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-1.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-2.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++11  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++14  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me\\\\(" 1
+FAIL: g++.dg/ipa/inline-3.C  -std=gnu++98  scan-ipa-dump-times inline 
"Considering void inline_me_too\\\\(" 1
+FAIL: g++.dg/ipa/ivinline-1.C  -std=gnu++11  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-1.C  -std=gnu++14  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-1.C  -std=gnu++98  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-3.C  -std=gnu++11  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-3.C  -std=gnu++14  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-3.C  -std=gnu++98  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++11  scan-ipa-dump inline 
"A::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++11  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++14  scan-ipa-dump inline 
"A::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++14  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++98  scan-ipa-dump inline 
"A::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-5.C  -std=gnu++98  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++11  scan-ipa-dump inline 
"B::bar[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++11  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++14  scan-ipa-dump inline 
"B::bar[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++14  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++98  scan-ipa-dump inline 
"B::bar[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/ivinline-8.C  -std=gnu++98  scan-ipa-dump inline 
"B::foo[^\\\\n]*inline copy in int main"
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++11 (internal compiler error)
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++11 (test for excess errors)
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++14 (internal compiler error)
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++14 (test for excess errors)
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++98 (internal compiler error)
+FAIL: g++.dg/ipa/pr71146.C  -std=gnu++98 (test for excess errors)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++11 (internal compiler error)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++11 (test for excess errors)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++14 (internal compiler error)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++14 (test for excess errors)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++98 (internal compiler error)
+FAIL: g++.dg/ipa/pr79776.C  -std=gnu++98 (test for excess errors)
+FAIL: g++.dg/pr48484.C  -std=gnu++11 warning (test for warnings, line 98)
+FAIL: g++.dg/pr48484.C  -std=gnu++14 warning (test for warnings, line 98)
+FAIL: g++.dg/pr48484.C  -std=gnu++98 warning (test for warnings, line 98)
+FAIL: g++.dg/pr79095-4.C  -std=gnu++11  (test for warnings, line )
+FAIL: g++.dg/pr79095-4.C  -std=gnu++11  scan-tree-dump-times vrp2 
"__builtin_memset \\\\(_[0-9]+, 0, [0-9]+\\\\)" 1
+FAIL: g++.dg/pr79095-4.C  -std=gnu++14  (test for warnings, line )
+FAIL: g++.dg/pr79095-4.C  -std=gnu++14  scan-tree-dump-times vrp2 
"__builtin_memset \\\\(_[0-9]+, 0, [0-9]+\\\\)" 1
+FAIL: g++.dg/pr79095-4.C  -std=gnu++98  (test for warnings, line )
+FAIL: g++.dg/pr79095-4.C  -std=gnu++98  scan-tree-dump-times vrp2 
"__builtin_memset \\\\(_[0-9]+, 0, [0-9]+\\\\)" 1
+FAIL: g++.dg/warn/string1.C  -std=gnu++11  (test for warnings, line 17)
+FAIL: g++.dg/warn/string1.C  -std=gnu++14  (test for warnings, line 17)
+FAIL: g++.dg/warn/string1.C  -std=gnu++98  (test for warnings, line 17)

and way way more (C, Ada, ...).  Assuming that the ipa-predicate.[ch]
patch was really only cosmetic, this only leaves your patch in this rev
range.

Please fix.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to