On Sun, 2016-11-13 at 23:00 -0800, Kenneth Graunke wrote:
> On Friday, November 11, 2016 9:41:11 AM PST Juan A. Suarez Romero
> wrote:
> > 
> > Do not evaluate spill costs for registers that were already marked
> > as
> > no_spill.
> > ---
> >  src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > index 228e04c..5a5be85 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > @@ -385,7 +385,7 @@ vec4_visitor::evaluate_spill_costs(float
> > *spill_costs, bool *no_spill)
> >      */
> >     foreach_block_and_inst(block, vec4_instruction, inst, cfg) {
> >        for (unsigned int i = 0; i < 3; i++) {
> > -         if (inst->src[i].file == VGRF) {
> > +         if (inst->src[i].file == VGRF && !no_spill[inst-
> > >src[i].nr]) {
> >              /* We will only unspill src[i] it it wasn't unspilled
> > for the
> >               * previous instruction, in which case we'll just
> > reuse the scratch
> >               * reg for this instruction.
> > @@ -399,7 +399,7 @@ vec4_visitor::evaluate_spill_costs(float
> > *spill_costs, bool *no_spill)
> >           }
> >        }
> >  
> > -      if (inst->dst.file == VGRF) {
> > +      if (inst->dst.file == VGRF && !no_spill[inst->dst.nr]) {
> >           spill_costs[inst->dst.nr] += loop_scale;
> >           if (inst->dst.reladdr || inst->dst.offset % REG_SIZE !=
> > 0)
> >              no_spill[inst->dst.nr] = true;
> > 
> 
> Hmm, it seems pretty harmless to do this...also, the FS backend
> doesn't
> have these checks either.
> 
> I'm guessing you're trying to avoid the overhead of calling
> can_use_scratch_for_source()?  It's a bunch of list walking for a
> value
> that ultimately won't matter.

Exactly. 


> Cutting that seems reasonable.
> 
> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

Thanks!

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to