Mesa (master): ra: Take advantage of the adjacency list in ra_select() too.

Eric Anholt anholt at kemper.freedesktop.org
Tue Jan 18 18:34:21 UTC 2011


Module: Mesa
Branch: master
Commit: 604022abed537d8066ddece5d8a4bbf08e93a2d5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=604022abed537d8066ddece5d8a4bbf08e93a2d5

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jan 18 00:33:35 2011 -0800

ra: Take advantage of the adjacency list in ra_select() too.

Reduces runtime of glsl-fs-convolution-1 another 13.9% +/- 0.6% (n=5).

---

 src/mesa/program/register_allocate.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
index 5de929e..e96909a 100644
--- a/src/mesa/program/register_allocate.c
+++ b/src/mesa/program/register_allocate.c
@@ -336,14 +336,15 @@ ra_select(struct ra_graph *g)
 	    continue;
 
 	 /* Check if any of our neighbors conflict with this register choice. */
-	 for (i = 0; i < g->count; i++) {
-	    if (g->nodes[n].adjacency[i] &&
-	       !g->nodes[i].in_stack &&
-		g->regs->regs[r].conflicts[g->nodes[i].reg]) {
+	 for (i = 0; i < g->nodes[n].adjacency_count; i++) {
+	    unsigned int n2 = g->nodes[n].adjacency_list[i];
+
+	    if (!g->nodes[n2].in_stack &&
+		g->regs->regs[r].conflicts[g->nodes[n2].reg]) {
 	       break;
 	    }
 	 }
-	 if (i == g->count)
+	 if (i == g->nodes[n].adjacency_count)
 	    break;
       }
       if (r == g->regs->count)




More information about the mesa-commit mailing list