Quoting Matt Turner (2018-02-07 20:42:15) > On Wed, Feb 7, 2018 at 11:41 AM, Chris Wilson <ch...@chris-wilson.co.uk> > wrote: > > text data bss dec hex filename > > 8852169 388752 671064 9911985 973eb1 lib/i965_dri.so > > 8852017 388752 671064 9911833 973e19 > > --- > > src/mesa/drivers/dri/i965/intel_tiled_memcpy.c | 48 > > +++++++++----------------- > > 1 file changed, 16 insertions(+), 32 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c > > b/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c > > index 53a5679691..a8157b5232 100644 > > --- a/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c > > +++ b/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c > > @@ -468,26 +468,22 @@ linear_to_xtiled_faster(uint32_t x0, uint32_t x1, > > uint32_t x2, uint32_t x3, > > if (mem_copy == memcpy) > > return linear_to_xtiled(0, 0, xtile_width, xtile_width, 0, > > xtile_height, > > dst, src, src_pitch, swizzle_bit, memcpy, > > memcpy); > > - else if (mem_copy == rgba8_copy) > > + else /* if (mem_copy == rgba8_copy) */ > > return linear_to_xtiled(0, 0, xtile_width, xtile_width, 0, > > xtile_height, > > dst, src, src_pitch, swizzle_bit, > > rgba8_copy, rgba8_copy_aligned_dst); > > - else > > - unreachable("not reached"); > > } else { > > if (mem_copy == memcpy) > > return linear_to_xtiled(x0, x1, x2, x3, y0, y1, > > dst, src, src_pitch, swizzle_bit, > > memcpy, memcpy); > > - else if (mem_copy == rgba8_copy) > > + else /* if (mem_copy == rgba8_copy) */ > > return linear_to_xtiled(x0, x1, x2, x3, y0, y1, > > dst, src, src_pitch, swizzle_bit, > > rgba8_copy, rgba8_copy_aligned_dst); > > - else > > - unreachable("not reached"); > > This should be a no-op. I'd expect the presence of 'else unreachable' > to allow the compiler to remove the previous conditional. > > > } > > - linear_to_xtiled(x0, x1, x2, x3, y0, y1, > > - dst, src, src_pitch, swizzle_bit, mem_copy, mem_copy); > > + > > + unreachable("not reached"); > > I would expect this is what causes the change. If that's the case, > let's just make this change. What do you think?
Don't mind, I didn't really mean to send this patch (pointed git at the wrong branch). I was a bit surprised that the compiler treated it any differently as all branches were terminated by unreachable, and the text reduction is not enough to account for a linear_to_xtiled() expansion (they're all meant to be unique expansions aiui). From a reading pov, having a linear_to_*tiled() after a set of terminated branches does look a bit odd, so replacing it with an unreachable() is a good idea. -Chris _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev