From: jamborm Date: Wed, 20 Mar 2013 16:20:22 +0000 (+0000) Subject: 2013-03-20 Martin Jambor X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3a1cb8792983ea651ae73057130ae413de312e2d;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196832 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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,