[Bug ipa/92133] Support multi versioning on self recursive function
fxue at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 2 06:38:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92133
--- Comment #7 from fxue at gcc dot gnu.org ---
Author: fxue
Date: Mon Dec 2 06:37:30 2019
New Revision: 278893
URL: https://gcc.gnu.org/viewcvs?rev=278893&root=gcc&view=rev
Log:
Enable recursive function versioning
2019-12-02 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/92133
* doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option.
(ipa-cp-min-recursive-probability): Likewise.
* params.opt (ipa-cp-max-recursive-depth): New.
(ipa-cp-min-recursive-probability): Likewise.
* ipa-cp.c (ipcp_lattice<valtype>::add_value): Add two new parameters
val_p and unlimited.
(self_recursively_generated_p): New function.
(get_val_across_arith_op): Likewise.
(propagate_vals_across_arith_jfunc): Add constant propagation for
self-recursive function.
(incorporate_penalties): Do not penalize pure self-recursive function.
(good_cloning_opportunity_p): Dump node_is_self_scc flag.
(propagate_constants_topo): Set node_is_self_scc flag for cgraph node.
(get_info_about_necessary_edges): Relax hotness check for edge to
self-recursive function.
* ipa-prop.h (ipa_node_params): Add new field node_is_self_scc.
2019-12-02 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/92133
* gcc.dg/ipa/ipa-clone-2.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/ipa/ipa-clone-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi
trunk/gcc/ipa-cp.c
trunk/gcc/ipa-prop.h
trunk/gcc/params.opt
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list