aco: reorder VMEM operands in ACO IR
authorDaniel Schürmann <daniel@schuermann.dev>
Thu, 16 Jan 2020 15:54:35 +0000 (16:54 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jan 2020 18:45:23 +0000 (18:45 +0000)
commit71440ba0f5512fe455be66ca48b253ecc37478a9
treeae9619e671d1e87a3bbef4d002d7bcc75b32fee5
parent8548fe19f03ecaee711ed9041be3dc05c7c22e56
aco: reorder VMEM operands in ACO IR

For all VMEM instructions, the resource constant is now
in operands[0]. For MIMG instructions, the sampler shares
operands[1] with write data in case this instruction writes memory.
Moving the VADDR to be the last operand for MIMG is the first step to
support Navi NSA encoding.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3602>
src/amd/compiler/aco_assembler.cpp
src/amd/compiler/aco_builder_h.py
src/amd/compiler/aco_insert_NOPs.cpp
src/amd/compiler/aco_insert_waitcnt.cpp
src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_ir.h
src/amd/compiler/aco_optimizer.cpp
src/amd/compiler/aco_register_allocation.cpp
src/amd/compiler/aco_scheduler.cpp
src/amd/compiler/aco_spill.cpp
src/amd/compiler/aco_validate.cpp