On Tue, Feb 17, 2015 at 2:00 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > > > On Mon, Feb 16, 2015 at 11:39 AM, Francisco Jerez <curroje...@riseup.net> > wrote: > > > UINT_MAX would be clearer than ~0 > >> >> int i; >> >> while (progress) { >> @@ -483,12 +490,16 @@ ra_simplify(struct ra_graph *g) >> >> if (!progress && best_optimistic_node != ~0U) { > > > I guess we're using ~0 other places... oh well...
Grr, this one is my fault... Francisco, feel free to fix this in a follow-up patch if you want. > >> >> decrement_q(g, best_optimistic_node); >> + stack_optimistic_start = >> + MIN2(stack_optimistic_start, g->stack_count); > > > It might be clearer to explicitly use an if here instead of the MIN2 because > what this really means is "if (stack_optimistic_start == ~0) > stack_optimistic_start = g->stack_count;" I agree with this one. > > Other than that (and connor's comment), it looks fine to me. > > --Jason > >> >> g->stack[g->stack_count] = best_optimistic_node; >> g->stack_count++; >> g->nodes[best_optimistic_node].in_stack = true; >> progress = true; >> } >> } >> + >> + g->stack_optimistic_start = stack_optimistic_start; >> } >> >> /** >> @@ -542,7 +553,16 @@ ra_select(struct ra_graph *g) >> g->nodes[n].reg = r; >> g->stack_count--; >> >> - if (g->regs->round_robin) >> + /* Rotate the starting point except for optimistically colorable >> nodes. >> + * The likelihood that we will succeed at allocating optimistically >> + * colorable nodes is highly dependent on the way that the previous >> + * nodes popped off the stack are laid out. The round-robin >> strategy >> + * increases the fragmentation of the register file and decreases >> the >> + * number of nearby nodes assigned to the same color, what >> increases the >> + * likelihood of spilling with respect to the dense packing >> strategy. >> + */ >> + if (g->regs->round_robin && >> + g->stack_count <= g->stack_optimistic_start) >> start_search_reg = r + 1; >> } >> >> -- >> 2.1.3 >> >> _______________________________________________ >> 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 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev