[Mesa-dev] [PATCH] nv50/ir: we can't replace 0x0 with zero reg for SHLADD

Ilia Mirkin imirkin at alum.mit.edu
Sat Apr 29 15:18:46 UTC 2017


On Sat, Apr 29, 2017 at 10:41 AM, Karol Herbst <karolherbst at gmail.com> wrote:
> fixes a crash in Alien Isolation

What crash? How did the zero get there? Does this only happen if you
do your optimization loop thing?

In either case, we still want the replaceZero() logic. However that
logic should be aware that the middle argument of a SHLADD is not to
be touched. Otherwise we could end up with an un-emittable
instruction.

>
> Signed-off-by: Karol Herbst <karolherbst at gmail.com>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> index 732e1a93b4..4815d6df07 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> @@ -740,7 +740,7 @@ NVC0LegalizePostRA::visit(BasicBlock *bb)
>                 next = hi;
>           }
>
> -         if (i->op != OP_MOV && i->op != OP_PFETCH)
> +         if (i->op != OP_MOV && i->op != OP_PFETCH && i->op != OP_SHLADD)
>              replaceZero(i);
>        }
>     }
> --
> 2.12.2
>


More information about the mesa-dev mailing list