Pushed! Thanks. On Tue, Mar 12, 2019 at 5:42 PM Timothy Arceri <tarc...@itsqueeze.com> wrote:
> > > On 13/3/19 8:30 am, Jason Ekstrand wrote: > > The previous code was completely broken when it came to constructing the > > undef values. I'm not sure how it ever worked. For the case of a copy > > that reads an undefined value, we can just delete the copy because the > > destination is a valid undefined value. This saves us the effort of > > trying to construct a value for an arbitrary copy_deref intrinsic. > > Yes. It turns out this was indeed not required. Thanks for the fix! > > Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> > > > > > Fixes: e8a8937a04 "nir: add partial loop unrolling support" > > Cc: Timothy Arceri <tarc...@itsqueeze.com> > > --- > > src/compiler/nir/nir_opt_loop_unroll.c | 14 ++------------ > > 1 file changed, 2 insertions(+), 12 deletions(-) > > > > diff --git a/src/compiler/nir/nir_opt_loop_unroll.c > b/src/compiler/nir/nir_opt_loop_unroll.c > > index 06ec78b8068..b2696d4aadb 100644 > > --- a/src/compiler/nir/nir_opt_loop_unroll.c > > +++ b/src/compiler/nir/nir_opt_loop_unroll.c > > @@ -670,11 +670,9 @@ remove_out_of_bounds_induction_use(nir_shader > *shader, nir_loop *loop, > > if (is_access_out_of_bounds(term, > nir_src_as_deref(intrin->src[0]), > > trip_count)) { > > if (intrin->intrinsic == nir_intrinsic_load_deref) { > > - assert(intrin->src[0].is_ssa); > > - nir_ssa_def *a_ssa = intrin->src[0].ssa; > > nir_ssa_def *undef = > > - nir_ssa_undef(&b, intrin->num_components, > > - a_ssa->bit_size); > > + nir_ssa_undef(&b, intrin->dest.ssa.num_components, > > + intrin->dest.ssa.bit_size); > > nir_ssa_def_rewrite_uses(&intrin->dest.ssa, > > nir_src_for_ssa(undef)); > > } else { > > @@ -686,14 +684,6 @@ remove_out_of_bounds_induction_use(nir_shader > *shader, nir_loop *loop, > > if (intrin->intrinsic == nir_intrinsic_copy_deref && > > is_access_out_of_bounds(term, > nir_src_as_deref(intrin->src[1]), > > trip_count)) { > > - assert(intrin->src[1].is_ssa); > > - nir_ssa_def *a_ssa = intrin->src[1].ssa; > > - nir_ssa_def *undef = > > - nir_ssa_undef(&b, intrin->num_components, > a_ssa->bit_size); > > - > > - /* Replace the copy with a store of the undefined value > */ > > - b.cursor = nir_before_instr(instr); > > - nir_store_deref(&b, nir_src_as_deref(intrin->src[0]), > undef, ~0); > > nir_instr_remove(instr); > > } > > } > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev