This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PING^1][PATCH v4 3/3] PR80791 Consider doloop cmp use in ivopts


On Wed, 10 Jul 2019, Kewen.Lin wrote:

> Hi all,
> 
> I'd like to gentle ping the below patch:
> https://gcc.gnu.org/ml/gcc-patches/2019-06/msg01225.html
> 
> The previous version for more context/background:
> https://gcc.gnu.org/ml/gcc-patches/2019-06/msg01126.html
> 
> Thanks a lot in advance!

Again I would have hoped Bin to chime in here.

Am I correct that doloop HW implementations are constrainted
by a decrement of one?  I see no code in the patch to constrain
things this way.  I'm not familiar with the group code at all
but I would have expected the patch to only affect costing
of IVs of the appropriate form (decrement one and possibly
no uses besides the one in the compare/decrement).  Since
ivcanon already adds a canonical counter IV it's not
necessary to generate an artificial candidate IV of the
wanted style (that's something I might have expected as well).

The rest should be just magic from the IVOPTs side?

There might be the need to only consider at most one counter IV
in the costing code.

Richard.

> 
> on 2019/6/20 下午8:16, Kewen.Lin wrote:
> > Hi,
> > 
> > Sorry, the previous patch is incomplete.
> > New one attached.  Sorry for inconvenience.
> > 
> > on 2019/6/20 下午8:08, Kewen.Lin wrote:
> >> Hi Segher,
> >>
> >>> On Wed, Jun 19, 2019 at 07:47:34PM +0800, Kewen.Lin wrote:
> >>>> +/* Return true if count register for branch is supported.  */
> >>>> +
> >>>> +static bool
> >>>> +rs6000_have_count_reg_decr_p ()
> >>>> +{
> >>>> +  return flag_branch_on_count_reg;
> >>>> +}
> >>>
> >>> rs6000 unconditionally supports these instructions, not just when that
> >>> flag is set.  If you need to look at the flag, the *caller* of this new
> >>> hook should, not every implementation of the hook.  So just "return true"
> >>> here?
> >>
> >> Good point!  Updated it as hookpod.
> >>
> >>>> +/* For doloop use, if the algothrim selects some candidate which invalid for
> >>>
> >>> "algorithm", "which is invalid".
> >>
> >>>> +   some cost like zero rather than original inifite cost.  The point is to
> >>>
> >>> "infinite"
> >>>
> >>
> >> Thanks for catching!  I should run spelling check next time.  :)
> >>
> >> New version attached with comments addressed.
> >>
> >>
> >> Thanks,
> >> Kewen
> >>
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany;
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah; HRB 21284 (AG Nürnberg)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]