pan/mdg: Precolour blend inputs
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 12 Jun 2020 20:45:24 +0000 (16:45 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 15 Jun 2020 13:29:25 +0000 (13:29 +0000)
commit277b6169625f7c03c89add2857e565b9765c0c1f
treef1c94d625282f2d8696f43691db64c55e6eb0da4
parentad0015907005b2994b44759a7fa59a39a8572706
pan/mdg: Precolour blend inputs

Instead of requiring an explicit unoptimized move, we can implicitly
colour the blend input intrinsic to r0, where it will be preloaded; this
is a simple task for RA, and does not conflict with anything. If there
are multiple duplicate loads, the latter ones can just be simple moves
which will be copypropped.

We don't need to include a explicit synthetic load, since (scanning
backwards) the read will cause the input to become live at the right
time and the lack of an explicit write will keep it live from the
beginning of the shader. So no need to make it more complicated than it
needs to be.

Saves a cycle in blend shaders.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5449>
src/panfrost/midgard/compiler.h
src/panfrost/midgard/midgard_compile.c
src/panfrost/midgard/midgard_ra.c
src/panfrost/midgard/mir.c
src/panfrost/midgard/mir_squeeze.c