On Wed, 8 Feb 2017 15:54:46 -0800 Jason Ekstrand <[email protected]> wrote:
> On Wed, Feb 8, 2017 at 2:20 PM, Elie Tournier > <[email protected]> wrote: > > > Signed-off-by: Elie Tournier <[email protected]> > > --- > > src/compiler/nir/nir_opt_loop_unroll.c | 10 +++++++++- > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/src/compiler/nir/nir_opt_loop_unroll.c > > b/src/compiler/nir/nir_opt_loop_unroll.c > > index 37cbced43d..035a030239 100644 > > --- a/src/compiler/nir/nir_opt_loop_unroll.c > > +++ b/src/compiler/nir/nir_opt_loop_unroll.c > > @@ -26,6 +26,14 @@ > > #include "nir_control_flow.h" > > #include "nir_loop_analyze.h" > > > > + > > +/* This limit is chosen fairly arbitrarily. The GLSL IR limit is > > 25. > > + * However, due to slight differences in the way the two IRs count > > + * instructions, some loops that would unroll with GLSL IR fail to > > unroll > > + * if we set this to 25 so we set it to 26. > > > > Ok, I lied in my comment. It's not 25, it's 32. Tim, can you > explain the discrepancy? > --Jason Max iteration is 32 this is number of instructions, in GLSL IR it was counting nodes and the magic number was 5. There is no 1:1 mapping 25 was picked because it seemed to give about the same results. Around 5 instructions per node. > > > > + */ > > +#define LOOP_UNROLL_LIMIT 26 > > + > > /* Prepare this loop for unrolling by first converting to lcssa > > and then > > * converting the phis from the loops first block and the block > > that follows > > * the loop into regs. Partially converting out of SSA allows us > > to unroll > > @@ -460,7 +468,7 @@ is_loop_small_enough_to_unroll(nir_shader > > *shader, nir_loop_info *li) > > return true; > > > > bool loop_not_too_large = > > - li->num_instructions * li->trip_count <= max_iter * 26; > > + li->num_instructions * li->trip_count <= max_iter * > > LOOP_UNROLL_LIMIT; > > > > return loop_not_too_large; > > } > > -- > > 2.11.0 > > > > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
