🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gmane.comp.gcc.bugs
Article #307979

[Bug tree-optimization/47237] [4.3/4.4/4.5/4.6 Regression] builtin_apply_args broken WRT local ABI changes.

#307979
From: "hubicka at gcc
Date: Wed, 26 Jan 2011 14:17
84 lines
3369 bytes
http://gcc.gnu.org/bugzilla/show_bug.cgi?idG237

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |WAITING

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-26 14:06:23 UTC ---
Author: hubicka
Date: Wed Jan 26 14:06:20 2011
New Revision: 169290

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev9290
Log:
    PR target/47237
    * cgraph.h (cgraph_local_info): New field can_change_signature.
    * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
    signature can change.
    (ipcp_estimate_growth): Call sequence simplify only if calle signature
    can change.
    (ipcp_insert_stage): Only compute args_to_skip if signature can change.
    (cgraph_function_versioning): We can not change signature of functions
    that don't allow that.
    * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
    (lto_input_node): Likewise.
    * ipa-inline.c (compute_inline_parameters): Compute
local.can_change_signature.
    * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
    * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on functions
    that can not change signature.
    * i386.c (ix86_function_regparm, ix86_function_sseregparm,
    init_cumulative_args): Do not use local calling conventions for functions
    that can not change signature.

Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/pr47237.c
Modified:
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/config/i386/i386.c
    trunk/gcc/ipa-cp.c
    trunk/gcc/ipa-inline.c
    trunk/gcc/ipa-split.c
    trunk/gcc/lto-cgraph.c
    trunk/gcc/tree-sra.c

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-26 14:07:05 UTC ---
Author: hubicka
Date: Wed Jan 26 14:07:02 2011
New Revision: 169291

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev9291
Log:
    PR target/47237
    * gcc.c-torture/execute/pr47237.c: New testcase.

    * cgraph.h (cgraph_local_info): New field can_change_signature.
    * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
    signature can change.
    (ipcp_estimate_growth): Call sequence simplify only if calle signature
    can change.
    (ipcp_insert_stage): Only compute args_to_skip if signature can change.
    (cgraph_function_versioning): We can not change signature of functions
    that don't allow that.
    * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
    (lto_input_node): Likewise.
    * ipa-inline.c (compute_inline_parameters): Compute
local.can_change_signature.
    * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
    * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on functions
    that can not change signature.
    * i386.c (ix86_function_regparm, ix86_function_sseregparm,
    init_cumulative_args): Do not use local calling conventions for functions
    that can not change signature.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-26 14:17:28 UTC ---
I've commited patch fixing the testcase. H.J., can you please confirm that the
LTO 32bit faiulres are gone for  you?

Message-ID: <bug-47237-4-PfVTT3Dqla@http.gcc.gnu.org/bugzilla/>
Path: gmane.pugleaf.net!archive.newsdeef.eu!g.newsdeef.eu!gmane.newsdeef.eu!news.gmane.org!not-for-mail
References: <bug-47237-4@http.gcc.gnu.org/bugzilla/>