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;
|
cur->end_ip = ip;
|
||||||
|
|
||||||
make_block_array();
|
make_block_array();
|
||||||
|
Reference in New Issue
Block a user