i965/nir: Handle returns as long as they're at the end of a function

This commit is contained in:
Jason Ekstrand
2015-06-24 21:38:49 -07:00
parent 2ecac045a4
commit 845002e163
+6
View File
@@ -1774,6 +1774,12 @@ fs_visitor::nir_emit_jump(const fs_builder &bld, nir_jump_instr *instr)
bld.emit(BRW_OPCODE_CONTINUE);
break;
case nir_jump_return:
/* This has to be the last block in the shader. We don't handle
* early returns.
*/
assert(nir_cf_node_next(&instr->instr.block->cf_node) == NULL &&
instr->instr.block->cf_node.parent->type == nir_cf_node_function);
break;
default:
unreachable("unknown jump");
}