mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
nir/copy_prop: remove unused copies
These were hurting performance of other passes. Compile-time (overall): Difference at 95.0% confidence -5496.3 +/- 219.752 -4.11912% +/- 0.160285% (Student's t, pooled s = 259.538) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8784>
This commit is contained in:
parent
ed9c3c4f19
commit
41125bff4f
1 changed files with 10 additions and 2 deletions
|
|
@ -99,7 +99,8 @@ copy_prop_src(nir_src *src, nir_instr *parent_instr, nir_if *parent_if,
|
|||
{
|
||||
assert(src->is_ssa);
|
||||
|
||||
nir_instr *src_instr = src->ssa->parent_instr;
|
||||
nir_ssa_def *original_ssa = src->ssa;
|
||||
nir_instr *src_instr = original_ssa->parent_instr;
|
||||
nir_ssa_def *copy_def;
|
||||
if (src_instr->type == nir_instr_type_alu) {
|
||||
nir_alu_instr *alu_instr = nir_instr_as_alu(src_instr);
|
||||
|
|
@ -121,6 +122,9 @@ copy_prop_src(nir_src *src, nir_instr *parent_instr, nir_if *parent_if,
|
|||
nir_if_rewrite_condition(parent_if, nir_src_for_ssa(copy_def));
|
||||
}
|
||||
|
||||
if (nir_ssa_def_is_unused(original_ssa))
|
||||
nir_instr_remove(src_instr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -130,7 +134,8 @@ copy_prop_alu_src(nir_alu_instr *parent_alu_instr, unsigned index)
|
|||
nir_alu_src *src = &parent_alu_instr->src[index];
|
||||
assert(src->src.is_ssa);
|
||||
|
||||
nir_instr *src_instr = src->src.ssa->parent_instr;
|
||||
nir_ssa_def *original_ssa = src->src.ssa;
|
||||
nir_instr *src_instr = original_ssa->parent_instr;
|
||||
if (src_instr->type != nir_instr_type_alu)
|
||||
return false;
|
||||
|
||||
|
|
@ -169,6 +174,9 @@ copy_prop_alu_src(nir_alu_instr *parent_alu_instr, unsigned index)
|
|||
nir_instr_rewrite_src(&parent_alu_instr->instr, &src->src,
|
||||
nir_src_for_ssa(def));
|
||||
|
||||
if (nir_ssa_def_is_unused(original_ssa))
|
||||
nir_instr_remove(src_instr);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue