mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
aco: only apply extract if not used more than 4 times
Totals from 61 (0.04% of 150170) affected shaders: (GFX10.3) CodeSize: 1087732 -> 1087380 (-0.03%); split: -0.22%, +0.18% Instrs: 192343 -> 192205 (-0.07%); split: -0.16%, +0.09% Latency: 7231670 -> 7148073 (-1.16%); split: -1.19%, +0.04% InvThroughput: 3436715 -> 3394926 (-1.22%); split: -1.25%, +0.04% VClause: 4831 -> 4833 (+0.04%) Copies: 50130 -> 49934 (-0.39%); split: -0.67%, +0.28% Branches: 5945 -> 5948 (+0.05%) PreSGPRs: 3486 -> 3472 (-0.40%) PreVGPRs: 5154 -> 5152 (-0.04%) Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11678>
This commit is contained in:
parent
b8c26e89fe
commit
d8eef134d8
1 changed files with 8 additions and 0 deletions
|
|
@ -3149,6 +3149,14 @@ combine_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
|||
if (!op.isTemp())
|
||||
continue;
|
||||
ssa_info& info = ctx.info[op.tempId()];
|
||||
if (!info.is_extract())
|
||||
continue;
|
||||
/* if there are that many uses, there are likely better combinations */
|
||||
// TODO: delay applying extract to a point where we know better
|
||||
if (ctx.uses[op.tempId()] > 4) {
|
||||
info.label &= ~label_extract;
|
||||
continue;
|
||||
}
|
||||
if (info.is_extract() &&
|
||||
(info.instr->operands[0].getTemp().type() == RegType::vgpr ||
|
||||
instr->operands[i].getTemp().type() == RegType::sgpr) &&
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue