[Bug lto/70929] [7/8/9/10 regression] Cross-module inlining for functions having argument passed by reference is no longer working.

2019-11-14 Thread rguenth at gcc dot gnu.org
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.

2019-11-07 Thread jamborm at gcc dot gnu.org
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.

2019-11-01 Thread jamborm at gcc dot gnu.org
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.

2019-10-04 Thread rguenth at gcc dot gnu.org
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.

2019-09-27 Thread jamborm at gcc dot gnu.org
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.