broadcom/compiler: start allocating from RF 4 in V7.x

In V3D 4.x we start at RF3 so that we allocate RF0-2 only if there
aren't any other RFs available. This is useful with small shaders to
ensure that our TLB writes don't use these registers because these are
the last instructions we emit in fragment shaders and the last
instructions in a program can't write to these registers, so if we do,
we need to emit NOPs.

In V3D 7.x the registers affected by this restriction are RF2-3, so we
choose to start at RF4.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
This commit is contained in:
Iago Toral Quiroga 2021-11-26 10:37:05 +01:00 committed by Marge Bot
parent 2b39bb35c5
commit d4285d7f2a

View file

@ -1234,9 +1234,10 @@ v3d_register_allocate(struct v3d_compile *c)
.phys_index = phys_index,
.next_acc = 0,
/* Start at RF3, to try to keep the TLB writes from using
* RF0-2.
* RF0-2. Start at RF4 in 7.x to prevent TLB writes from
* using RF2-3.
*/
.next_phys = 3,
.next_phys = c->devinfo->ver <= 42 ? 3 : 4,
.nodes = &c->nodes,
.devinfo = c->devinfo,
};