3bec9e684d
In the future we will have many ALU instructions passing shared registers to each other, and surrounding them each with moves to/from shared registers will severely bloat the IR size coming out of NIR and make more pointless work for copy propagation. Instead, do something more like the ACO approach and allow values stored in the hash table to be shared, and move the burden of emitting a mov to non-shared to ir3_get_src(). We will then use ir3_get_src_shared() or ir3_get_src_maybe_shared() as appropriate in cases where we can handle shared registers or where we can handle both. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22075>