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? 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. >>>