• Home
  • Raw
  • Download

Lines Matching refs:deref

46             nir_deref_instr *deref = nir_instr_as_deref(instr);  in get_complex_used_vars()  local
51 if (deref->deref_type == nir_deref_type_var && in get_complex_used_vars()
52 nir_deref_instr_has_complex_use(deref)) in get_complex_used_vars()
53 _mesa_set_add(complex_vars, deref->var); in get_complex_used_vars()
221 nir_deref_instr *deref = nir_instr_as_deref(instr); in split_struct_derefs_impl() local
222 if (!nir_deref_mode_may_be(deref, modes)) in split_struct_derefs_impl()
228 if (nir_deref_instr_remove_if_unused(deref)) in split_struct_derefs_impl()
231 if (!glsl_type_is_vector_or_scalar(deref->type)) in split_struct_derefs_impl()
234 nir_variable *base_var = nir_deref_instr_get_variable(deref); in split_struct_derefs_impl()
251 nir_deref_path_init(&path, deref, mem_ctx); in split_struct_derefs_impl()
292 assert(new_deref->type == deref->type); in split_struct_derefs_impl()
293 nir_ssa_def_rewrite_uses(&deref->dest.ssa, in split_struct_derefs_impl()
295 nir_deref_instr_remove_if_unused(deref); in split_struct_derefs_impl()
443 get_array_deref_info(nir_deref_instr *deref, in get_array_deref_info() argument
447 if (!nir_deref_mode_may_be(deref, modes)) in get_array_deref_info()
450 nir_variable *var = nir_deref_instr_get_variable(deref); in get_array_deref_info()
458 mark_array_deref_used(nir_deref_instr *deref, in mark_array_deref_used() argument
464 get_array_deref_info(deref, var_info_map, modes); in mark_array_deref_used()
469 nir_deref_path_init(&path, deref, mem_ctx); in mark_array_deref_used()
775 nir_deref_instr *deref = nir_instr_as_deref(instr); in split_array_access_impl() local
776 if (nir_deref_mode_may_be(deref, modes)) in split_array_access_impl()
777 nir_deref_instr_remove_if_unused(deref); in split_array_access_impl()
794 nir_deref_instr *deref = nir_src_as_deref(intrin->src[d]); in split_array_access_impl() local
797 get_array_deref_info(deref, var_info_map, modes); in split_array_access_impl()
802 nir_deref_path_init(&path, deref, mem_ctx); in split_array_access_impl()
849 assert(new_deref->type == deref->type); in split_array_access_impl()
854 nir_deref_instr_remove_if_unused(deref); in split_array_access_impl()
1027 get_vec_deref_usage(nir_deref_instr *deref, in get_vec_deref_usage() argument
1032 if (!nir_deref_mode_may_be(deref, modes)) in get_vec_deref_usage()
1035 nir_variable *var = nir_deref_instr_get_variable(deref); in get_vec_deref_usage()
1039 return get_vec_var_usage(nir_deref_instr_get_variable(deref), in get_vec_deref_usage()
1044 mark_deref_if_complex(nir_deref_instr *deref, in mark_deref_if_complex() argument
1052 if (deref->deref_type != nir_deref_type_var) in mark_deref_if_complex()
1055 if (!(deref->var->data.mode & modes)) in mark_deref_if_complex()
1058 if (!nir_deref_instr_has_complex_use(deref)) in mark_deref_if_complex()
1062 get_vec_var_usage(deref->var, var_usage_map, true, mem_ctx); in mark_deref_if_complex()
1070 mark_deref_used(nir_deref_instr *deref, in mark_deref_used() argument
1078 if (!nir_deref_mode_may_be(deref, modes)) in mark_deref_used()
1081 nir_variable *var = nir_deref_instr_get_variable(deref); in mark_deref_used()
1108 nir_deref_path_init(&path, deref, mem_ctx); in mark_deref_used()
1117 nir_deref_instr *deref = path.path[i + 1]; in mark_deref_used() local
1118 assert(deref->deref_type == nir_deref_type_array || in mark_deref_used()
1119 deref->deref_type == nir_deref_type_array_wildcard); in mark_deref_used()
1122 if (deref->deref_type == nir_deref_type_array) { in mark_deref_used()
1123 max_used = nir_src_is_const(deref->arr.index) ? in mark_deref_used()
1124 nir_src_as_uint(deref->arr.index) : UINT_MAX; in mark_deref_used()
1127 assert(deref->deref_type == nir_deref_type_array_wildcard); in mark_deref_used()
1435 vec_deref_is_oob(nir_deref_instr *deref, in vec_deref_is_oob() argument
1439 nir_deref_path_init(&path, deref, NULL); in vec_deref_is_oob()
1460 vec_deref_is_dead_or_oob(nir_deref_instr *deref, in vec_deref_is_dead_or_oob() argument
1465 get_vec_deref_usage(deref, var_usage_map, modes, false, NULL); in vec_deref_is_dead_or_oob()
1469 return usage->comps_kept == 0 || vec_deref_is_oob(deref, usage); in vec_deref_is_dead_or_oob()
1484 nir_deref_instr *deref = nir_instr_as_deref(instr); in shrink_vec_var_access_impl() local
1485 if (!nir_deref_mode_may_be(deref, modes)) in shrink_vec_var_access_impl()
1491 if (nir_deref_instr_remove_if_unused(deref)) in shrink_vec_var_access_impl()
1500 if (deref->deref_type == nir_deref_type_var) { in shrink_vec_var_access_impl()
1501 deref->type = deref->var->type; in shrink_vec_var_access_impl()
1502 } else if (deref->deref_type == nir_deref_type_array || in shrink_vec_var_access_impl()
1503 deref->deref_type == nir_deref_type_array_wildcard) { in shrink_vec_var_access_impl()
1504 nir_deref_instr *parent = nir_deref_instr_parent(deref); in shrink_vec_var_access_impl()
1507 deref->type = glsl_get_array_element(parent->type); in shrink_vec_var_access_impl()
1537 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); in shrink_vec_var_access_impl() local
1538 if (!nir_deref_mode_may_be(deref, modes)) in shrink_vec_var_access_impl()
1542 get_vec_deref_usage(deref, var_usage_map, modes, false, NULL); in shrink_vec_var_access_impl()
1546 if (usage->comps_kept == 0 || vec_deref_is_oob(deref, usage)) { in shrink_vec_var_access_impl()
1555 nir_deref_instr_remove_if_unused(deref); in shrink_vec_var_access_impl()