OSDN Git Service

PR target/47237
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Jan 2011 14:07:02 +0000 (14:07 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Jan 2011 14:07:02 +0000 (14:07 +0000)
commit269b8d98ccc41c72b149a855e6a3d5f675150b62
tree9853ec915cab8b3bfdac80196c989cd879cdc4a4
parent3c97c75dbc59497ed3a56c20eb66a50f554c4a6a
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169291 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog