On Fri, Oct 4, 2013 at 2:19 PM, Paul Berry <stereotype...@gmail.com> wrote: > On 4 October 2013 13:51, Paul Berry <stereotype...@gmail.com> wrote: >> >> On 3 October 2013 10:59, Matt Turner <matts...@gmail.com> wrote: >>> >>> v2: Check fixed_hw_reg.{file,nr} instead of dst.reg. >>> v3: Store the bool emitted_addc_or_subb in the class, not static. >>> --- >>> src/mesa/drivers/dri/i965/brw_fs.h | 3 + >>> src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 104 >>> +++++++++++++++++++++++++++ >>> 2 files changed, 107 insertions(+) >> >> >> Reviewed-by: Paul Berry <stereotype...@gmail.com> > > > Whoops, wait a minute. I spoke too soon. > > I'm concerned because it looks like this peephole pass is too generous. The > following instruction stream, for example, shoud not be peephole optimized: > > addc null, x, y > mov carry, acc0 > mov x, z > add sum x, y > > But I don't see anything in fs_visitor::try_combine_add_with_addc_subb() to > prevent this.
We're operating on virtual grfs at this point, so I don't think that case is possible. I.e., if there were an intervening write to x, it just would have been a different vgrf. I think Ken had this same concern at one point, although I don't think he ever said it via email. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev