Mesa (master): nv50/ir/ra: Fix register interference tracking.
Christoph Bumiller
chrisbmr at kemper.freedesktop.org
Tue Sep 25 11:58:58 UTC 2012
Module: Mesa
Branch: master
Commit: 374925bec9c3c613ef0c6855d0ddf7e081b446d8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=374925bec9c3c613ef0c6855d0ddf7e081b446d8
Author: Jay Cornwall <jay at jcornwall.me>
Date: Sat Sep 22 11:15:11 2012 -0500
nv50/ir/ra: Fix register interference tracking.
See fdo bug 55224.
---
src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
index 1399876..714837e 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp
@@ -43,7 +43,7 @@ public:
bool assign(int32_t& reg, DataFile f, unsigned int size);
void release(DataFile f, int32_t reg, unsigned int size);
- bool occupy(DataFile f, int32_t reg, unsigned int size);
+ bool occupy(DataFile f, int32_t reg, unsigned int size, bool noTest = false);
bool occupy(const Value *);
void occupyMask(DataFile f, int32_t reg, uint8_t mask);
@@ -167,9 +167,9 @@ RegisterSet::occupyMask(DataFile f, int32_t reg, uint8_t mask)
}
bool
-RegisterSet::occupy(DataFile f, int32_t reg, unsigned int size)
+RegisterSet::occupy(DataFile f, int32_t reg, unsigned int size, bool noTest)
{
- if (bits[f].testRange(reg, size))
+ if (!noTest && bits[f].testRange(reg, size))
return false;
bits[f].setRange(reg, size);
@@ -1235,7 +1235,7 @@ GCRA::checkInterference(const RIG_Node *node, Graph::EdgeIterator& ei)
INFO_DBG(prog->dbgFlags, REG_ALLOC,
"(%%%i) X (%%%i): $r%i + %u\n",
vA->id, vB->id, intf->reg, intf->colors);
- regs.occupy(node->f, intf->reg, intf->colors);
+ regs.occupy(node->f, intf->reg, intf->colors, true);
}
}
More information about the mesa-commit
mailing list