mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 09:10:12 +01:00
nir: delete nir_opt_reuse_constants
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31031>
This commit is contained in:
parent
5ccee0fe83
commit
bb7e8d51b6
3 changed files with 0 additions and 54 deletions
|
|
@ -253,7 +253,6 @@ files_libnir = files(
|
|||
'nir_opt_reassociate_bfi.c',
|
||||
'nir_opt_rematerialize_compares.c',
|
||||
'nir_opt_remove_phis.c',
|
||||
'nir_opt_reuse_constants.c',
|
||||
'nir_opt_shrink_stores.c',
|
||||
'nir_opt_shrink_vectors.c',
|
||||
'nir_opt_sink.c',
|
||||
|
|
|
|||
|
|
@ -6845,8 +6845,6 @@ bool nir_opt_ray_queries(nir_shader *shader);
|
|||
|
||||
bool nir_opt_ray_query_ranges(nir_shader *shader);
|
||||
|
||||
bool nir_opt_reuse_constants(nir_shader *shader);
|
||||
|
||||
void nir_sweep(nir_shader *shader);
|
||||
|
||||
void nir_remap_dual_slot_attributes(nir_shader *shader,
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
/*
|
||||
* Copyright 2023 Intel Corporation
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include "nir.h"
|
||||
#include "nir_instr_set.h"
|
||||
|
||||
bool
|
||||
nir_opt_reuse_constants(nir_shader *shader)
|
||||
{
|
||||
bool progress = false;
|
||||
|
||||
struct set *consts = nir_instr_set_create(NULL);
|
||||
nir_foreach_function_impl(impl, shader) {
|
||||
_mesa_set_clear(consts, NULL);
|
||||
|
||||
nir_block *start_block = nir_start_block(impl);
|
||||
bool func_progress = false;
|
||||
|
||||
nir_foreach_block_safe(block, impl) {
|
||||
const bool in_start_block = start_block == block;
|
||||
nir_foreach_instr_safe(instr, block) {
|
||||
if (instr->type != nir_instr_type_load_const)
|
||||
continue;
|
||||
|
||||
struct set_entry *entry = _mesa_set_search(consts, instr);
|
||||
if (!entry) {
|
||||
if (!in_start_block)
|
||||
nir_instr_move(nir_after_block_before_jump(start_block), instr);
|
||||
_mesa_set_add(consts, instr);
|
||||
}
|
||||
|
||||
if (nir_instr_set_add_or_rewrite(consts, instr, nir_instrs_equal)) {
|
||||
func_progress = true;
|
||||
nir_instr_remove(instr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (func_progress) {
|
||||
nir_metadata_preserve(impl, nir_metadata_control_flow);
|
||||
progress = true;
|
||||
} else {
|
||||
nir_metadata_preserve(impl, nir_metadata_all);
|
||||
}
|
||||
}
|
||||
|
||||
nir_instr_set_destroy(consts);
|
||||
return progress;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue