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