aco: remove definition from Pseudo branch instructions
They are not needed anymore. Totals from 7019 (8.84% of 79395) affected shaders: (Navi31) Instrs: 14805400 -> 14824196 (+0.13%); split: -0.00%, +0.13% CodeSize: 78079972 -> 78132932 (+0.07%); split: -0.01%, +0.08% SpillSGPRs: 4485 -> 4515 (+0.67%); split: -0.76%, +1.43% Latency: 165862000 -> 165836134 (-0.02%); split: -0.02%, +0.00% InvThroughput: 30061764 -> 30057781 (-0.01%); split: -0.01%, +0.00% SClause: 392323 -> 392286 (-0.01%); split: -0.01%, +0.00% Copies: 1012262 -> 1012234 (-0.00%); split: -0.04%, +0.04% Branches: 365910 -> 365909 (-0.00%); split: -0.00%, +0.00% PreSGPRs: 360167 -> 355363 (-1.33%) VALU: 8837197 -> 8837276 (+0.00%); split: -0.00%, +0.00% SALU: 1402593 -> 1402621 (+0.00%); split: -0.03%, +0.03% Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32037>
This commit is contained in:
committed by
Marge Bot
parent
7e4687fd04
commit
b64fff7731
@@ -637,8 +637,8 @@ add_branch_code(exec_ctx& ctx, Block* block)
|
||||
|
||||
if (need_parallelcopy)
|
||||
bld.copy(Definition(exec, bld.lm), ctx.info[idx].exec.back().op);
|
||||
bld.branch(aco_opcode::p_cbranch_nz, bld.def(s2), Operand(exec, bld.lm),
|
||||
block->linear_succs[1], block->linear_succs[0]);
|
||||
bld.branch(aco_opcode::p_cbranch_nz, Operand(exec, bld.lm), block->linear_succs[1],
|
||||
block->linear_succs[0]);
|
||||
} else if (block->kind & block_kind_uniform) {
|
||||
Pseudo_branch_instruction& branch = block->instructions.back()->branch();
|
||||
if (branch.opcode == aco_opcode::p_branch) {
|
||||
@@ -671,7 +671,7 @@ add_branch_code(exec_ctx& ctx, Block* block)
|
||||
/* add next current exec to the stack */
|
||||
ctx.info[idx].exec.emplace_back(Operand(exec, bld.lm), mask_type);
|
||||
|
||||
Builder::Result r = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2), Operand(exec, bld.lm),
|
||||
Builder::Result r = bld.branch(aco_opcode::p_cbranch_z, Operand(exec, bld.lm),
|
||||
block->linear_succs[1], block->linear_succs[0]);
|
||||
r->branch().rarely_taken = branch->branch().rarely_taken;
|
||||
r->branch().never_taken = branch->branch().never_taken;
|
||||
@@ -685,7 +685,7 @@ add_branch_code(exec_ctx& ctx, Block* block)
|
||||
bld.sop2(Builder::s_andn2, Definition(exec, bld.lm), bld.def(s1, scc), orig_exec,
|
||||
Operand(exec, bld.lm));
|
||||
|
||||
Builder::Result r = bld.branch(aco_opcode::p_cbranch_z, bld.def(s2), Operand(exec, bld.lm),
|
||||
Builder::Result r = bld.branch(aco_opcode::p_cbranch_z, Operand(exec, bld.lm),
|
||||
block->linear_succs[1], block->linear_succs[0]);
|
||||
r->branch().rarely_taken = branch->branch().rarely_taken;
|
||||
r->branch().never_taken = branch->branch().never_taken;
|
||||
@@ -713,7 +713,7 @@ add_branch_code(exec_ctx& ctx, Block* block)
|
||||
bld.copy(Definition(exec, bld.lm), Operand::zero(bld.lm.bytes()));
|
||||
}
|
||||
|
||||
bld.branch(aco_opcode::p_cbranch_nz, bld.def(s2), bld.scc(cond), block->linear_succs[1],
|
||||
bld.branch(aco_opcode::p_cbranch_nz, bld.scc(cond), block->linear_succs[1],
|
||||
block->linear_succs[0]);
|
||||
} else if (block->kind & block_kind_continue) {
|
||||
assert(block->instructions.back()->opcode == aco_opcode::p_branch);
|
||||
@@ -739,7 +739,7 @@ add_branch_code(exec_ctx& ctx, Block* block)
|
||||
bld.copy(Definition(exec, bld.lm), Operand::zero(bld.lm.bytes()));
|
||||
}
|
||||
|
||||
bld.branch(aco_opcode::p_cbranch_nz, bld.def(s2), bld.scc(cond), block->linear_succs[1],
|
||||
bld.branch(aco_opcode::p_cbranch_nz, bld.scc(cond), block->linear_succs[1],
|
||||
block->linear_succs[0]);
|
||||
} else {
|
||||
unreachable("unknown/invalid block type");
|
||||
|
||||
Reference in New Issue
Block a user