freedreno/ir3/ra: add def/use iterators
authorRob Clark <robdclark@chromium.org>
Sat, 21 Mar 2020 21:44:44 +0000 (14:44 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 27 Mar 2020 22:41:36 +0000 (22:41 +0000)
commit6347c2ea89bde624dd16cff6741db57e89d88ad5
tree5c887b14ec3a11036245f2d5a07f6d129601f7d1
parentbf0aa7ed90231540c66328a515928dd8e3324343
freedreno/ir3/ra: add def/use iterators

Decouple the messy logic of figuring out vreg names defined/used by an
instruction from the logic of what to do about it by introducing
iterators.  There is still *some* array vs ssa special casing in
ra_block_compute_live_ranges(), but less than before.  And this will
avoid introducing a second copy of the def/use logic in a following
patch which uses the liveranges to calculate the maximum # of live
values (which is the optimal target for max physical register window
to round-robin within).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4272>
src/freedreno/ir3/ir3_ra.c
src/freedreno/ir3/ir3_ra.h