[Mesa-dev] [Mesa-stable] [PATCH] nv50/ir: skip optimizing ADD+SHL to SHLADD when src(1) is 0

Juan A. Suarez Romero jasuarez at igalia.com
Tue Sep 26 11:21:31 UTC 2017


On Tue, 2017-09-26 at 06:45 -0400, Ilia Mirkin wrote:
> On Tue, Sep 26, 2017 at 6:30 AM, Samuel Pitoiset
> <samuel.pitoiset at gmail.com> wrote:
> > 
> > 
> > On 09/26/2017 12:29 PM, Juan A. Suarez Romero wrote:
> > > 
> > > On Mon, 2017-05-01 at 12:11 -0400, Ilia Mirkin wrote:
> > > > 
> > > > On Mon, May 1, 2017 at 12:09 PM, Samuel Pitoiset
> > > > <samuel.pitoiset at gmail.com> wrote:
> > > > > 
> > > > > On 05/01/2017 05:59 PM, Ilia Mirkin wrote:
> > > > > > 
> > > > > > 
> > > > > > I think this is off. It shouldn't matter what the code sequence is,
> > > > > > it's all representable. You need to teach replaceZero to not mess
> > > > > > things up for SHLADD's src(1).
> > > > > 
> > > > > 
> > > > > 
> > > > > It's representable but stupid to do it. We should keep the ADD there and
> > > > > this also avoids a workaround in the replaceZero logic just for that.
> > > > > 
> > > > > IMHO, this is the better solution.
> > > > 
> > > > 
> > > > Yes, that would be a better optimization. However at this stage, you
> > > > have a y = SHL(x, 0) + ADD(y, z). I think it makes sense to combine
> > > > them into one and let DCE take care of it.
> > > > 
> > > > Ideally we wouldn't get into such a situation, but the real issue is
> > > > that a perfectly representable (if dumb) instruction like SHLADD(x, 0,
> > > > y) gets messed up by replaceZero. We should fix replaceZero. We should
> > > > also try to avoid generating such stupid instructions.
> > > > 
> > > 
> > > So what was the final conclusion for this patch? Was replaceZero fixed?
> > 
> > 
> > I don't think it has been fixed, but I could be wrong.
> 
> https://cgit.freedesktop.org/mesa/mesa/commit/src/gallium/drivers/nouveau/codegen?id=82e77d4e4484b5d4f6a7b4751a17c882e6d2ad69

Thanks for the reply!


	J.A.



More information about the mesa-dev mailing list