From 19321415eedc7cde0db631fb9a4dfbf36d351660 Mon Sep 17 00:00:00 2001 From: Martin Jambor Date: Wed, 20 Mar 2013 17:20:22 +0100 Subject: [PATCH] params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter. 2013-03-20 Martin Jambor * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter. * ipa-cp.c (hint_time_bonus): Add abonus for known array indices. From-SVN: r196832 --- gcc/ChangeLog | 5 +++++ gcc/ipa-cp.c | 7 +++++-- gcc/params.def | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1cc25b054b1e..217fe3bee6c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-03-20 Martin Jambor + + * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter. + * ipa-cp.c (hint_time_bonus): Add abonus for known array indices. + 2013-03-20 Pat Haugen * config/rs6000/predicates.md (indexed_address, update_address_mem diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index d01b053a3f9b..69d7d23acb2b 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -1622,9 +1622,12 @@ devirtualization_time_bonus (struct cgraph_node *node, static int hint_time_bonus (inline_hints hints) { + int result = 0; if (hints & (INLINE_HINT_loop_iterations | INLINE_HINT_loop_stride)) - return PARAM_VALUE (PARAM_IPA_CP_LOOP_HINT_BONUS); - return 0; + result += PARAM_VALUE (PARAM_IPA_CP_LOOP_HINT_BONUS); + if (hints & INLINE_HINT_array_index) + result += PARAM_VALUE (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS); + return result; } /* Return true if cloning NODE is a good idea, given the estimated TIME_BENEFIT diff --git a/gcc/params.def b/gcc/params.def index 97d485745874..a25b8bce1ddc 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -919,6 +919,12 @@ DEFPARAM (PARAM_IPA_CP_LOOP_HINT_BONUS, "bounds or strides known.", 64, 0, 0) +DEFPARAM (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS, + "ipa-cp-array-index-hint-bonus", + "Compile-time bonus IPA-CP assigns to candidates which make an array " + "index known.", + 48, 0, 0) + /* WHOPR partitioning configuration. */ DEFPARAM (PARAM_LTO_PARTITIONS,