[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70929 Richard Biener changed: What|Removed |Added Target Milestone|7.5 |8.4 --- Comment #16 from Richard Biener --- The GCC 7 branch is being closed, re-targeting to GCC 8.4.
[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70929 --- Comment #15 from Martin Jambor --- Author: jamborm Date: Thu Nov 7 10:55:43 2019 New Revision: 277920 URL: https://gcc.gnu.org/viewcvs?rev=277920=gcc=rev Log: Remove gimple_call_types_likely_match_p (PR 70929) 2019-11-07 Martin Jambor PR lto/70929 * cif-code.def (MISMATCHED_ARGUMENTS): Removed. * cgraph.h (gimple_check_call_matching_types): Remove * cgraph.c (gimple_check_call_args): Likewise. (gimple_check_call_matching_types): Likewise. (symbol_table::create_edge): Do not call gimple_check_call_matching_types. (cgraph_edge::make_direct): Likewise. (cgraph_edge::redirect_call_stmt_to_callee): Likewise. * value-prof.h (check_ic_target): Remove. * value-prof.c (check_ic_target): Remove. (gimple_ic_transform): Do nat call check_ic_target. * auto-profile.c (function_instance::find_icall_target_map): Likewise. (afdo_indirect_call): Likewise. * ipa-prop.c (update_indirect_edges_after_inlining): Do not call gimple_check_call_matching_types. * ipa-inline.c (early_inliner): Likewise. testsuite/ * g++.dg/lto/pr70929_[01].C: New test. * gcc.dg/winline-10.c: Adjust for the fact that inlining happens. Added: trunk/gcc/testsuite/g++.dg/lto/pr70929_0.C trunk/gcc/testsuite/g++.dg/lto/pr70929_1.C Modified: trunk/gcc/ChangeLog trunk/gcc/auto-profile.c trunk/gcc/cgraph.c trunk/gcc/cgraph.h trunk/gcc/cif-code.def trunk/gcc/ipa-inline.c trunk/gcc/ipa-prop.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/winline-10.c trunk/gcc/value-prof.c
[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70929 --- Comment #14 from Martin Jambor --- I sent a more detailed analysis of the behavior of gimple_call_types_likely_match_p and the idea from comment #5 along with a patch that mostly removes the predicate to the mailing list: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00016.html
[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70929 Richard Biener changed: What|Removed |Added CC||gcc-bugzilla at tobias dot goedder ||z.info --- Comment #13 from Richard Biener --- *** Bug 91988 has been marked as a duplicate of this bug. ***
[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70929 Martin Jambor changed: What|Removed |Added CC||jamborm at gcc dot gnu.org --- Comment #12 from Martin Jambor --- (In reply to Jan Hubicka from comment #11) > Since we now stream parameter types into ipa-fnsummary, we should be able to > resolve this precisely? We stream types of formal parameters (so in WPA we know that the type of the formal parameter of t is a reference and not a struct) but we don't stream type of actual arguments unless they are a constant, so, at least if I understand the question correctly, we still cannot make the type comparison in the IPA decision stage.