mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 03:18:08 +02:00
r600/sfn: don't propagate registers into conditional test
We don't check whether the register is overwritten between the actual
conditional test and the test of the used result, so don't try to
optimize the evaluation of the conditional.
Fixes: 79ca456b48
r600/sfn: rewrite NIR backend
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18983>
This commit is contained in:
parent
99b7a12ec1
commit
6de40d17ba
1 changed files with 15 additions and 4 deletions
|
|
@ -219,11 +219,22 @@ void ReplaceIfPredicate::visit(AluInstr *alu)
|
|||
if (new_op == op0_nop)
|
||||
return;
|
||||
|
||||
/* Have to figure out how to pass the dependency correctly */
|
||||
/*for (auto& s : alu->sources()) {
|
||||
if (s->as_register() && s->as_register()->addr())
|
||||
for (auto& s : alu->sources()) {
|
||||
auto reg = s->as_register();
|
||||
/* Protext against propagating
|
||||
*
|
||||
* V = COND(R, X)
|
||||
* R = SOME_OP
|
||||
* IF (V)
|
||||
*
|
||||
* to
|
||||
*
|
||||
* R = SOME_OP
|
||||
* IF (COND(R, X))
|
||||
*/
|
||||
if (reg && !reg->is_ssa())
|
||||
return;
|
||||
}*/
|
||||
}
|
||||
|
||||
m_pred->set_op(new_op);
|
||||
m_pred->set_sources(alu->sources());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue