r600/sfn: work around injecting extra CF's to handle hardware bugs

The clause local registers can't be used if a new CF is started, but
the assembler still may introduce a CFs to work around some hardware bug,
so make sure RA doesn't assume that the predicate ALU op is in the same ALU
CF like the ALU ops before.

This is a hotfix, the scheduler should handle this better.

Fixes:  cfbd1fd413
    r600/sfn: Use clause local registers in RA

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24611>
This commit is contained in:
Gert Wollny 2023-08-10 17:05:58 +02:00 committed by Marge Bot
parent b8edd19358
commit 17c95e070c

View file

@ -389,8 +389,11 @@ LiveRangeInstrVisitor::visit(ControlFlowInstr *instr)
void
LiveRangeInstrVisitor::visit(IfInstr *instr)
{
int b = m_block;
m_block = -1;
instr->predicate()->accept(*this);
scope_if();
m_block = b;
}
void