aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/program/register_allocate.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-10-04 10:58:53 +0200
committermarha <marha@users.sourceforge.net>2012-10-04 10:58:53 +0200
commitbd13c464f728719fceb8a4918b52727ec125ea6e (patch)
tree05a48375076036097a9e28356738c05a16cc5ed0 /mesalib/src/mesa/program/register_allocate.c
parentbab6395ded69210cbc550c0fb3765160e4405283 (diff)
parent0130346adbce7e6b2422429887fc46c76806d845 (diff)
downloadvcxsrv-bd13c464f728719fceb8a4918b52727ec125ea6e.tar.gz
vcxsrv-bd13c464f728719fceb8a4918b52727ec125ea6e.tar.bz2
vcxsrv-bd13c464f728719fceb8a4918b52727ec125ea6e.zip
Merge remote-tracking branch 'origin/released'
* origin/released: randrproto mesa pixman git update 4 oct 2012
Diffstat (limited to 'mesalib/src/mesa/program/register_allocate.c')
-rw-r--r--mesalib/src/mesa/program/register_allocate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/mesalib/src/mesa/program/register_allocate.c b/mesalib/src/mesa/program/register_allocate.c
index 97d4e331c..88793dbdc 100644
--- a/mesalib/src/mesa/program/register_allocate.c
+++ b/mesalib/src/mesa/program/register_allocate.c
@@ -555,6 +555,13 @@ ra_get_best_spill_node(struct ra_graph *g)
if (cost <= 0.0)
continue;
+ /* Only consider registers for spilling if they are still in the
+ * interference graph (those on the stack have already been proven to be
+ * allocatable without spilling).
+ */
+ if (g->nodes[n].in_stack)
+ continue;
+
benefit = ra_get_spill_benefit(g, n);
if (benefit / cost > best_benefit) {