diff options
author | Martin Jambor <mjambor@suse.cz> | 2015-03-29 17:38:52 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-03-29 15:38:52 +0000 |
commit | af21714c7bac20c348d544a285a2dc95fe271a5d (patch) | |
tree | e453ad69e49ea0bba2b3abce3f4a11b1b1315dd6 /gcc/params.def | |
parent | a1bff765cbff0bdab0c25bcf25b737c511c7f2d7 (diff) | |
download | gcc-af21714c7bac20c348d544a285a2dc95fe271a5d.tar.gz |
re PR ipa/65478 (crafty performance regression)
PR ipa/65478
* params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
(PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
* ipa-prop.h (ipa_node_params): New flags node_within_scc and
node_calling_single_call.
* ipa-cp.c (count_callers): New function.
(set_single_call_flag): Likewise.
(initialize_node_lattices): Count callers and set single_flag_call if
necessary.
(incorporate_penalties): New function.
(good_cloning_opportunity_p): Use it, dump new flags.
(propagate_constants_topo): Set node_within_scc flag if appropriate.
* doc/invoke.texi (ipa-cp-recursion-penalty,
ipa-cp-single-call-pentalty): Document.
From-SVN: r221763
Diffstat (limited to 'gcc/params.def')
-rw-r--r-- | gcc/params.def | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/params.def b/gcc/params.def index f890cb0e176..5e2c7695865 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -999,6 +999,18 @@ DEFPARAM (PARAM_IPA_CP_EVAL_THRESHOLD, "beneficial to clone.", 500, 0, 0) +DEFPARAM (PARAM_IPA_CP_RECURSION_PENALTY, + "ipa-cp-recursion-penalty", + "Percentage penalty the recursive functions will receive when they " + "are evaluated for cloning.", + 40, 0, 100) + +DEFPARAM (PARAM_IPA_CP_SINGLE_CALL_PENALTY, + "ipa-cp-single-call-penalty", + "Percentage penalty functions containg a single call to another " + "function will receive when they are evaluated for cloning.", + 15, 0, 100) + DEFPARAM (PARAM_IPA_MAX_AGG_ITEMS, "ipa-max-agg-items", "Maximum number of aggregate content items for a parameter in " |