mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 00:30:11 +01:00
i965/fs: Don't use if_block/else_block in SEL peephole.
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
20a061d2b4
commit
4001181ba3
1 changed files with 11 additions and 6 deletions
|
|
@ -132,16 +132,21 @@ fs_visitor::opt_peephole_sel()
|
|||
if (if_inst->opcode != BRW_OPCODE_IF)
|
||||
continue;
|
||||
|
||||
if (!block->else_block)
|
||||
continue;
|
||||
|
||||
assert(block->else_block->end()->opcode == BRW_OPCODE_ELSE);
|
||||
|
||||
fs_inst *else_mov[MAX_MOVS] = { NULL };
|
||||
fs_inst *then_mov[MAX_MOVS] = { NULL };
|
||||
|
||||
bblock_t *then_block = block->next();
|
||||
bblock_t *else_block = block->else_block->next();
|
||||
bblock_t *else_block = NULL;
|
||||
foreach_list_typed(bblock_link, child, link, &block->children) {
|
||||
if (child->block != then_block) {
|
||||
if (child->block->prev()->end()->opcode == BRW_OPCODE_ELSE) {
|
||||
else_block = child->block;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (else_block == NULL)
|
||||
continue;
|
||||
|
||||
int movs = count_movs_from_if(then_mov, else_mov, then_block, else_block);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue