i965: Ensure that we end instruction streams properly.
Threads must terminate with a SEND message to a particular shared function, such as a URB write or FB write, so the instruction stream really shouldn't ever end in an IF/ELSE/ENDIF or similar block structure. However, if the instruction stream (incorrectly) ends in a block structure the last block's end pointer will not be set, leading to a crash later on in fs_live_variables::setup_def_use(). It is better to detect this earlier, so assert on that. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -257,6 +257,8 @@ cfg_t::cfg_t(exec_list *instructions)
|
||||
}
|
||||
}
|
||||
|
||||
assert(cur->end);
|
||||
|
||||
cur->end_ip = ip;
|
||||
|
||||
make_block_array();
|
||||
|
Reference in New Issue
Block a user