Lines Matching defs:instr

106 nir_deref_instr_remove_if_unused(nir_deref_instr *instr)
110 for (nir_deref_instr *d = instr; d; d = nir_deref_instr_parent(d)) {
116 nir_instr_remove(&d->instr);
124 nir_deref_instr_has_indirect(nir_deref_instr *instr)
126 while (instr->deref_type != nir_deref_type_var) {
128 if (instr->deref_type == nir_deref_type_cast)
131 if ((instr->deref_type == nir_deref_type_array ||
132 instr->deref_type == nir_deref_type_ptr_as_array) &&
133 !nir_src_is_const(instr->arr.index))
136 instr = nir_deref_instr_parent(instr);
143 nir_deref_instr_is_known_out_of_bounds(nir_deref_instr *instr)
145 for (; instr; instr = nir_deref_instr_parent(instr)) {
146 if (instr->deref_type == nir_deref_type_array &&
147 nir_src_is_const(instr->arr.index) &&
148 nir_src_as_uint(instr->arr.index) >=
149 glsl_get_length(nir_deref_instr_parent(instr)->type))
382 nir_foreach_instr_safe(instr, block) {
383 if (instr->type == nir_instr_type_deref &&
384 nir_deref_instr_remove_if_unused(nir_instr_as_deref(instr)))
419 nir_foreach_instr(instr, block) {
420 if (instr->type != nir_instr_type_deref)
423 nir_deref_instr *deref = nir_instr_as_deref(instr);
708 nir_deref_path_init(deref->_path, deref->instr, mem_ctx);
717 if (a->instr == b->instr) /* nir_compare_derefs has a fast path if a == b */
718 return nir_compare_derefs(a->instr, b->instr);
735 if (deref->instr.block == state->block)
788 nir_ssa_dest_init(&new_deref->instr, &new_deref->dest,
792 nir_builder_instr_insert(b, &new_deref->instr);
839 nir_foreach_instr_safe(instr, block) {
840 if (instr->type == nir_instr_type_deref &&
841 nir_deref_instr_remove_if_unused(nir_instr_as_deref(instr)))
847 if (instr->type == nir_instr_type_phi)
850 state.builder.cursor = nir_before_instr(instr);
851 nir_foreach_src(instr, rematerialize_deref_src, &state);
918 nir_instr_rewrite_src_ssa(&alu->instr, &alu->src[i].src,
945 is_deref_ptr_as_array(nir_instr *instr)
947 return instr->type == nir_instr_type_deref &&
948 nir_instr_as_deref(instr)->deref_type == nir_deref_type_ptr_as_array;
1038 nir_instr_rewrite_src(&cast->instr, &cast->parent,
1100 nir_instr_remove(&cast->instr);
1220 nir_instr_remove(&deref->instr);
1238 nir_instr_rewrite_src(&deref->instr, &deref->parent, parent->parent);
1239 nir_instr_rewrite_src(&deref->instr, &deref->arr.index,
1324 nir_instr_rewrite_src(&load->instr, &load->src[0],
1331 b->cursor = nir_after_instr(&load->instr);
1365 nir_instr_rewrite_src(&store->instr, &store->src[0],
1373 nir_instr_rewrite_src(&store->instr, &store->src[1],
1407 nir_instr_remove(&intrin->instr);
1420 nir_foreach_instr_safe(instr, block) {
1421 b.cursor = nir_before_instr(instr);
1423 switch (instr->type) {
1425 nir_alu_instr *alu = nir_instr_as_alu(instr);
1432 nir_deref_instr *deref = nir_instr_as_deref(instr);
1456 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);