On Thu, May 4, 2017 at 5:33 PM, Bin.Cheng <amker.ch...@gmail.com> wrote: > On Wed, Apr 26, 2017 at 3:32 PM, Bin.Cheng <amker.ch...@gmail.com> wrote: >> On Wed, Apr 26, 2017 at 3:23 PM, Richard Biener >> <richard.guent...@gmail.com> wrote: >>> On Wed, Apr 26, 2017 at 3:37 PM, Bin.Cheng <amker.ch...@gmail.com> wrote: >>>> On Wed, Apr 26, 2017 at 2:32 PM, Richard Biener >>>> <richard.guent...@gmail.com> wrote: >>>>> On Tue, Apr 18, 2017 at 12:52 PM, Bin Cheng <bin.ch...@arm.com> wrote: >>>>>> Hi, >>>>>> Given only integer variables are meaningful for register pressure >>>>>> estimation in IVOPTs, >>>>>> this patch skips non-integer type PHIs when counting register pressure. >>>>>> Is it OK? >>>>> >>>>> Huh. I suppose it only makes a difference because you are ignoring >>>>> POINTER_TYPE_P >>>>> IVs? At least I would be surprised if get_iv returns true for float >>>>> or vector PHIs (yeah, see >>>>> early out in get_iv)? So why exclude POINTER_TYPE_P IVs? >>>> Hmm, but if get_iv returns non-NULL, the phi won't be counted because >>>> loop is continued? Actually, all IV and invariants are skipped by >>>> checking get_iv, so this is only to skip floating point phis. >>> >>> Err, but AFAICS get_iv will return non-NULL for POINTER_TYPE_P IVs >>> which you then skip by your added >>> >>> + if (!INTEGRAL_TYPE_P (TREE_TYPE (op))) >>> + continue; >>> >>> thus float IVs are always skipped by means if get_iv returning NULL. >>> >>> Oh, the get_iv check continues for non-NULL result ... so it makes sense. >>> But still, why exclude POINTER_TYPE_P non-IV ops? >> POINTER_TYPE_P is simply an overlook, will update patch. > Here is updated version picking up POINTER_TYPE_P.
Ok. Richard. > Thanks, > bin >> >> Thanks, >> bin >>> >>> Richard. >>> >>>> Thanks, >>>> bin >>>>> >>>>> Richard. >>>>> >>>>>> Thanks, >>>>>> bin >>>>>> >>>>>> 2017-04-11 Bin Cheng <bin.ch...@arm.com> >>>>>> >>>>>> * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger >>>>>> when counting register pressure. >>>>>>