From 8962cc96ec2bc1eb561a438512adc5042e2c8d34 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 16 Dec 2016 23:30:40 -0800 Subject: [PATCH] i965: Use nir_opt_trivial_continues and nir_opt_if Reviewed-by: Timothy Arceri --- src/mesa/drivers/dri/i965/brw_nir.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_nir.c b/src/mesa/drivers/dri/i965/brw_nir.c index a52d614b516..6f37e97a86f 100644 --- a/src/mesa/drivers/dri/i965/brw_nir.c +++ b/src/mesa/drivers/dri/i965/brw_nir.c @@ -429,6 +429,15 @@ nir_optimize(nir_shader *nir, const struct brw_compiler *compiler, OPT(nir_opt_algebraic); OPT(nir_opt_constant_folding); OPT(nir_opt_dead_cf); + if (OPT(nir_opt_trivial_continues)) { + /* If nir_opt_trivial_continues makes progress, then we need to clean + * things up if we want any hope of nir_opt_if or nir_opt_loop_unroll + * to make progress. + */ + OPT(nir_copy_prop); + OPT(nir_opt_dce); + } + OPT(nir_opt_if); if (nir->options->max_unroll_iterations != 0) { OPT(nir_opt_loop_unroll, indirect_mask); } -- 2.30.2