aco: propagate temporaries into expanded vectors
Gives a very slight decrease in code size: Totals from affected shaders: Code Size: 1708488 -> 1702768 (-0.33 %) bytes Max Waves: 2858 -> 2855 (-0.10 %) Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
This commit is contained in:
parent
df3e674fb3
commit
8259c97b2d
|
@ -777,8 +777,13 @@ void label_instruction(opt_ctx &ctx, Block& block, aco_ptr<Instruction>& instr)
|
|||
unsigned k = 0;
|
||||
for (Operand& old_op : old_vec->operands) {
|
||||
if (old_op.isTemp() && ctx.info[old_op.tempId()].is_vec()) {
|
||||
for (unsigned j = 0; j < ctx.info[old_op.tempId()].instr->operands.size(); j++)
|
||||
instr->operands[k++] = ctx.info[old_op.tempId()].instr->operands[j];
|
||||
for (unsigned j = 0; j < ctx.info[old_op.tempId()].instr->operands.size(); j++) {
|
||||
Operand op = ctx.info[old_op.tempId()].instr->operands[j];
|
||||
if (op.isTemp() && ctx.info[op.tempId()].is_temp() &&
|
||||
ctx.info[op.tempId()].temp.type() == instr->definitions[0].regClass().type())
|
||||
op.setTemp(ctx.info[op.tempId()].temp);
|
||||
instr->operands[k++] = op;
|
||||
}
|
||||
} else {
|
||||
instr->operands[k++] = old_op;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue