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:
@@ -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++) {
|
||||
|
||||
Reference in New Issue
Block a user