aco/ra: initialize temp_in_scc earlier

We need to know if there's a temporary in SCC before the instruction, not
after.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 93c8ebfa78 ("aco: Initial commit of independent AMD compiler")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10459>
This commit is contained in:
Rhys Perry 2021-05-03 14:21:59 +01:00 committed by Marge Bot
parent d517996ae5
commit 4e459df0fc

View file

@ -2270,6 +2270,8 @@ void register_allocation(Program *program, std::vector<IDSet>& live_out_per_bloc
assert(!is_phi(instr));
bool temp_in_scc = register_file[scc];
/* handle operands */
for (unsigned i = 0; i < instr->operands.size(); ++i) {
auto& operand = instr->operands[i];
@ -2484,7 +2486,6 @@ void register_allocation(Program *program, std::vector<IDSet>& live_out_per_bloc
if (!parallelcopy.empty()) {
aco_ptr<Pseudo_instruction> pc;
pc.reset(create_instruction<Pseudo_instruction>(aco_opcode::p_parallelcopy, Format::PSEUDO, parallelcopy.size(), parallelcopy.size()));
bool temp_in_scc = register_file[scc];
bool sgpr_operands_alias_defs = false;
uint64_t sgpr_operands[4] = {0, 0, 0, 0};
for (unsigned i = 0; i < parallelcopy.size(); i++) {