mesa/st/glsl_to_tgsi: Add tracking of indirect addressing registers
authorGert Wollny <gw.fossdev@gmail.com>
Thu, 7 Dec 2017 12:51:22 +0000 (13:51 +0100)
committerBrian Paul <brianp@vmware.com>
Wed, 24 Jan 2018 17:23:00 +0000 (10:23 -0700)
commit51c0cee267206ae9de215b8e4f75c04a2fa251b2
treef18a7f646b45f7838d64fdef9de7e066e7df593a
parent517e34c62f18c6067781370401d26c8162dfde4c
mesa/st/glsl_to_tgsi: Add tracking of indirect addressing registers

So far indirect addressing was not tracked to estimate the temporary
life time, and it was not needed, because code to load the address
registers was always emitted eliminating the reladdr* handles in the
past glsl-to.tgsi stages. Now, with Mareks patch allowing any 1D register
to be used for addressing on some hardware this changed, and
the tracking becomes necessary.

Because the registers have no direct indication on whether the reladdr* was
already loaded into an address register, the temporaries in reladdr* are
always tracked as reads. This may result in a slight over-estimation of the
lifetime in the cases when the load to the address register was emitted.

v2: no changes
v3: Use debug_log variable instead of directly writing to std::err in debugging
    output.
v6: fix indention and typos

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> (v1)
Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp