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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user