mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-26 13:20:37 +02:00
nv50/ir/ra: Fix register interference tracking.
See fdo bug 55224.
This commit is contained in:
parent
124b214f09
commit
374925bec9
1 changed files with 4 additions and 4 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue