lima: run nir dce after nir_lower_vec_to_movs
Some of the 'vec*' nir instructions may hold references to dead code until the nir_lower_vec_to_movs pass runs. After nir_lower_vec_to_movs, that code can finally be cleaned by dce, so add an additional dce pass. This not only potentially further removes unneeded code from the nir representation but also prevents bugs with the compiler from special case unused code that is not expected (e.g. root undef type nodes). Signed-off-by: Erico Nunes <nunes.erico@gmail.com> Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9507>
This commit is contained in:
@@ -261,6 +261,7 @@ lima_program_optimize_fs_nir(struct nir_shader *s,
|
||||
|
||||
NIR_PASS_V(s, nir_move_vec_src_uses_to_dest);
|
||||
NIR_PASS_V(s, nir_lower_vec_to_movs, lima_vec_to_movs_filter_cb, NULL);
|
||||
NIR_PASS_V(s, nir_opt_dce); /* clean up any new dead code from vec to movs */
|
||||
|
||||
NIR_PASS_V(s, lima_nir_duplicate_load_uniforms);
|
||||
NIR_PASS_V(s, lima_nir_duplicate_load_inputs);
|
||||
|
Reference in New Issue
Block a user