i965: Make DCE explicitly not eliminate any control flow instructions.
According to Matt, the dead code pass explicitly avoided IF and WHILE because on Sandybridge, these could have conditional modifiers and null destination registers. Normally, those instructions use BAD_FILE for the destination register. Nowadays, we don't do that anymore, so we could technically drop these checks. However, it's clearer to explicitly leave control flow instructions alone, so change it to the more generic !inst->is_control_flow(). This should have no actual change. [This patch implements review feedback from Curro and Matt.] Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
aac562f112
commit
be5f53e769
|
@ -77,9 +77,8 @@ fs_visitor::dead_code_eliminate()
|
|||
}
|
||||
}
|
||||
|
||||
if ((inst->opcode != BRW_OPCODE_IF &&
|
||||
inst->opcode != BRW_OPCODE_WHILE) &&
|
||||
inst->dst.is_null() &&
|
||||
if (inst->dst.is_null() &&
|
||||
!inst->is_control_flow() &&
|
||||
!inst->has_side_effects() &&
|
||||
!inst->flags_written() &&
|
||||
!inst->writes_accumulator) {
|
||||
|
|
Loading…
Reference in New Issue