util/ra: Only update best_optimistic_node if !progress

This shaves about half a second off the 30 second compile time of one of
the compute shaders in Aztec ruins.

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Jason Ekstrand
2019-05-09 13:51:03 -05:00
parent de56d3a2d1
commit 9d6d1f47e7
+5 -1
View File
@@ -524,7 +524,11 @@ ra_simplify(struct ra_graph *g)
g->stack_count++;
BITSET_SET(g->in_stack, i);
progress = true;
} else {
} else if (!progress) {
/* We only need to do this if we haven't made progress. If we
* have made progress, we'll throw the data away and loop again
* anyway.
*/
unsigned int new_q_total = g->nodes[i].q_total;
if (new_q_total < lowest_q_total) {
best_optimistic_node = i;