[Mesa-dev] [PATCH 2/3] ra: Create a reg_belongs_to_class() helper function.

Brian Paul brianp at vmware.com
Mon Mar 17 14:00:53 PDT 2014


On 03/17/2014 02:32 PM, Kenneth Graunke wrote:
> This is a little easier to read.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>   src/mesa/program/register_allocate.c | 13 +++++++++++--
>   1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
> index edde730..c763b96 100644
> --- a/src/mesa/program/register_allocate.c
> +++ b/src/mesa/program/register_allocate.c
> @@ -284,6 +284,15 @@ ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int r)
>   }
>
>   /**
> + * Returns true if the register belongs to the given class.
> + */
> +static bool
> +reg_belongs_to_class(unsigned int r, struct ra_class *c)

pointer could be const.

Series look OK to me.  Reviewed-by: Brian Paul <brianp at vmware.com>


> +{
> +   return c->regs[r];
> +}
> +
> +/**
>    * Must be called after all conflicts and register classes have been
>    * set up and before the register set is used for allocation.
>    * To avoid costly q value computation, use the q_values paramater
> @@ -319,7 +328,7 @@ ra_set_finalize(struct ra_regs *regs, unsigned int **q_values)
>   	    int conflicts = 0;
>   	    int i;
>
> -	    if (!regs->classes[c]->regs[rc])
> +            if (!reg_belongs_to_class(rc, regs->classes[c]))
>   	       continue;
>
>   	    for (i = 0; i < regs->regs[rc].num_conflicts; i++) {
> @@ -479,7 +488,7 @@ ra_select(struct ra_graph *g)
>          */
>         for (ri = 0; ri < g->regs->count; ri++) {
>            r = (start_search_reg + ri) % g->regs->count;
> -	 if (!c->regs[r])
> +         if (!reg_belongs_to_class(r, c))
>   	    continue;
>
>   	 /* Check if any of our neighbors conflict with this register choice. */
>



More information about the mesa-dev mailing list