I'm not seeing where it does anything other than what I say. Beforehand the cost
is increased (*=) from DO->WHILE. Now it should be decreased (/= 10) from
IF->ENDIF. The factor of 10 probably needs to be modified since I suspect

Can you help me see what I'm not seeing?

On Fri, Jun 19, 2015 at 06:53:28PM -0700, Connor Abbott wrote:
> I don't think this is doing what you think it's doing. This code is
> for calculating the *cost* of spills, so a higher cost means a lower
> priority for choosing the register. We increase the cost for things
> inside loops because we don't want to spill inside loops, and by doing
> the same thing for if's you're actually discouraging spills inside an
> if block.
> 
> On Fri, Jun 19, 2015 at 5:21 PM, Ben Widawsky
> <benjamin.widaw...@intel.com> wrote:
> > If we have a register that needs spilling in an if/else block, there is a 
> > chance
> > that we may not need to spill if we do[n't] take the branch.
> >
> > The downside of this patch is the case where the register being spilled 
> > ends up
> > in both if/else blocks. For that case, preferring this path will increase 
> > code
> > size with no possible performance benefit.
> >
> > Same patch for FS coming up.
> >
> > Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
> > ---
> >  src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > 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 b9db908..b345f27 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
> > @@ -309,10 +309,12 @@ vec4_visitor::evaluate_spill_costs(float 
> > *spill_costs, bool *no_spill)
> >
> >        switch (inst->opcode) {
> >
> > +      case BRW_OPCODE_ENDIF:
> >        case BRW_OPCODE_DO:
> >          loop_scale *= 10;
> >          break;
> >
> > +      case BRW_OPCODE_IF:
> >        case BRW_OPCODE_WHILE:
> >          loop_scale /= 10;
> >          break;
> > --
> > 2.4.4
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to