intel/fs: Assume NIR is in SSA form
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24310>
This commit is contained in:

committed by
Marge Bot

parent
965bbe5286
commit
94f36cfaa3
@@ -498,8 +498,8 @@ bool
|
||||
fs_visitor::optimize_extract_to_float(nir_alu_instr *instr,
|
||||
const fs_reg &result)
|
||||
{
|
||||
if (!instr->src[0].src.is_ssa ||
|
||||
!instr->src[0].src.ssa->parent_instr)
|
||||
assert(instr->src[0].src.is_ssa);
|
||||
if (!instr->src[0].src.ssa->parent_instr)
|
||||
return false;
|
||||
|
||||
if (instr->src[0].src.ssa->parent_instr->type != nir_instr_type_alu)
|
||||
@@ -1999,8 +1999,8 @@ fs_visitor::get_nir_src_block(const nir_src &src)
|
||||
static bool
|
||||
is_resource_src(nir_src src)
|
||||
{
|
||||
return src.is_ssa &&
|
||||
src.ssa->parent_instr->type == nir_instr_type_intrinsic &&
|
||||
assert(src.is_ssa);
|
||||
return src.ssa->parent_instr->type == nir_instr_type_intrinsic &&
|
||||
nir_instr_as_intrinsic(src.ssa->parent_instr)->intrinsic == nir_intrinsic_resource_intel;
|
||||
}
|
||||
|
||||
@@ -4020,9 +4020,7 @@ add_rebuild_src(nir_src *src, void *state)
|
||||
{
|
||||
struct rebuild_resource *res = (struct rebuild_resource *) state;
|
||||
|
||||
if (!src->is_ssa)
|
||||
return false;
|
||||
|
||||
assert(src->is_ssa);
|
||||
for (nir_ssa_def *def : res->array) {
|
||||
if (def == src->ssa)
|
||||
return true;
|
||||
@@ -4384,9 +4382,9 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
||||
nir_ssa_bind_infos[instr->dest.ssa.index].binding =
|
||||
nir_intrinsic_binding(instr);
|
||||
|
||||
if ((nir_intrinsic_resource_access_intel(instr) &
|
||||
nir_resource_intel_non_uniform) ||
|
||||
!instr->src[1].is_ssa) {
|
||||
assert(instr->src[1].is_ssa);
|
||||
if (nir_intrinsic_resource_access_intel(instr) &
|
||||
nir_resource_intel_non_uniform) {
|
||||
nir_resource_values[instr->dest.ssa.index] = fs_reg();
|
||||
} else {
|
||||
nir_resource_values[instr->dest.ssa.index] =
|
||||
@@ -6709,9 +6707,8 @@ fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr)
|
||||
const unsigned dest_size = nir_tex_instr_dest_size(instr);
|
||||
if (devinfo->ver >= 9 &&
|
||||
instr->op != nir_texop_tg4 && instr->op != nir_texop_query_levels) {
|
||||
unsigned write_mask = instr->dest.is_ssa ?
|
||||
nir_ssa_def_components_read(&instr->dest.ssa):
|
||||
(1 << dest_size) - 1;
|
||||
assert(instr->dest.is_ssa);
|
||||
unsigned write_mask = nir_ssa_def_components_read(&instr->dest.ssa);
|
||||
assert(write_mask != 0); /* dead code should have been eliminated */
|
||||
inst->size_written = util_last_bit(write_mask) *
|
||||
inst->dst.component_size(inst->exec_size);
|
||||
|
Reference in New Issue
Block a user