Searched refs:deref (Results 1 - 25 of 294) sorted by relevance

1234567891011>>

/xsrc/external/mit/MesaLib/dist/src/compiler/glsl/
H A Dlower_buffer_access.h45 insert_buffer_access(void *mem_ctx, ir_dereference *deref,
49 void emit_access(void *mem_ctx, bool is_write, ir_dereference *deref,
55 bool is_dereferenced_thing_row_major(const ir_rvalue *deref);
57 void setup_buffer_access(void *mem_ctx, ir_rvalue *deref,
H A Dlower_buffer_access.cpp52 * Takes a deref and recursively calls itself to break the deref down to the
58 ir_dereference *deref,
66 if (deref->type->is_struct()) {
69 for (unsigned i = 0; i < deref->type->length; i++) {
71 &deref->type->fields.structure[i];
73 new(mem_ctx) ir_dereference_record(deref->clone(mem_ctx, NULL),
96 if (deref->type->is_array()) {
98 deref->type->fields.array->std430_array_stride(row_major) :
99 glsl_align(deref
56 emit_access(void * mem_ctx,bool is_write,ir_dereference * deref,ir_variable * base_offset,unsigned int deref_offset,bool row_major,const glsl_type * matrix_type,enum glsl_interface_packing packing,unsigned int write_mask) argument
182 is_dereferenced_thing_row_major(const ir_rvalue * deref) argument
273 setup_buffer_access(void * mem_ctx,ir_rvalue * deref,ir_rvalue ** offset,unsigned * const_offset,bool * row_major,const glsl_type ** matrix_type,const glsl_struct_field ** struct_field,enum glsl_interface_packing packing) argument
[all...]
H A Dgl_nir_lower_buffers.c33 get_block_array_index(nir_builder *b, nir_deref_instr *deref, argument
45 while (deref->deref_type == nir_deref_type_array) {
46 nir_deref_instr *parent = nir_deref_instr_parent(deref);
50 if (nir_src_is_const(deref->arr.index)) {
51 unsigned arr_index = nir_src_as_uint(deref->arr.index);
53 /* We're walking the deref from the tail so prepend the array index */
59 nir_ssa_def *arr_index = nir_ssa_for_src(b, deref->arr.index, 1);
67 /* We're walking the deref from the tail so prepend the array index */
72 deref = parent;
75 assert(deref
192 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_buffer_interface_derefs_impl
252 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl
278 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl
[all...]
H A Dlower_vector_derefs.cpp62 ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs; local in function:vector_deref_visitor::visit_enter
63 if (!deref->array->type->is_vector())
71 ir_variable *var = deref->variable_referenced();
76 ir_rvalue *const new_lhs = deref->array;
80 deref->array_index->constant_expression_value(mem_ctx);
83 deref->variable_referenced()->data.mode == ir_var_shader_out) {
101 factory.make_temp(deref->array_index->type, "index_tmp");
102 factory.emit(assign(arr_index, deref->array_index));
106 ir_constant::zero(factory.mem_ctx, deref->array_index->type);
135 deref
175 ir_dereference_array *const deref = (ir_dereference_array *) *rv; local in function:vector_deref_visitor::handle_rvalue
[all...]
/xsrc/external/mit/MesaLib.old/dist/src/compiler/glsl/
H A Dlower_buffer_access.h45 insert_buffer_access(void *mem_ctx, ir_dereference *deref,
49 void emit_access(void *mem_ctx, bool is_write, ir_dereference *deref,
55 bool is_dereferenced_thing_row_major(const ir_rvalue *deref);
57 void setup_buffer_access(void *mem_ctx, ir_rvalue *deref,
H A Dlower_buffer_access.cpp52 * Takes a deref and recursively calls itself to break the deref down to the
58 ir_dereference *deref,
66 if (deref->type->is_struct()) {
69 for (unsigned i = 0; i < deref->type->length; i++) {
71 &deref->type->fields.structure[i];
73 new(mem_ctx) ir_dereference_record(deref->clone(mem_ctx, NULL),
96 if (deref->type->is_array()) {
98 deref->type->fields.array->std430_array_stride(row_major) :
99 glsl_align(deref
56 emit_access(void * mem_ctx,bool is_write,ir_dereference * deref,ir_variable * base_offset,unsigned int deref_offset,bool row_major,const glsl_type * matrix_type,enum glsl_interface_packing packing,unsigned int write_mask) argument
182 is_dereferenced_thing_row_major(const ir_rvalue * deref) argument
273 setup_buffer_access(void * mem_ctx,ir_rvalue * deref,ir_rvalue ** offset,unsigned * const_offset,bool * row_major,const glsl_type ** matrix_type,const glsl_struct_field ** struct_field,enum glsl_interface_packing packing) argument
[all...]
H A Dgl_nir_lower_buffers.c33 get_block_array_index(nir_builder *b, nir_deref_instr *deref, argument
44 while (deref->deref_type == nir_deref_type_array) {
45 nir_deref_instr *parent = nir_deref_instr_parent(deref);
49 if (nir_src_is_const(deref->arr.index)) {
50 unsigned arr_index = nir_src_as_uint(deref->arr.index);
53 /* We're walking the deref from the tail so prepend the array index */
57 nir_ssa_def *arr_index = nir_ssa_for_src(b, deref->arr.index, 1);
65 /* We're walking the deref from the tail so prepend the array index */
70 deref = parent;
73 assert(deref
150 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_buffer_interface_derefs_impl
200 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl
225 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl
[all...]
H A Dlower_vector_derefs.cpp62 ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs; local in function:vector_deref_visitor::visit_enter
63 if (!deref->array->type->is_vector())
71 ir_variable *var = deref->variable_referenced();
76 ir_rvalue *const new_lhs = deref->array;
80 deref->array_index->constant_expression_value(mem_ctx);
83 deref->variable_referenced()->data.mode == ir_var_shader_out) {
101 factory.make_temp(deref->array_index->type, "index_tmp");
102 factory.emit(assign(arr_index, deref->array_index));
106 ir_constant::zero(factory.mem_ctx, deref->array_index->type);
135 deref
159 ir_dereference_array *const deref = (ir_dereference_array *) *rv; local in function:vector_deref_visitor::handle_rvalue
[all...]
H A Dgl_nir_lower_samplers.c45 nir_deref_instr *deref = nir_instr_as_deref(src->src.ssa->parent_instr); local in function:lower_tex_src_to_offset
46 while (deref->deref_type != nir_deref_type_var) {
47 assert(deref->parent.is_ssa);
49 nir_instr_as_deref(deref->parent.ssa->parent_instr);
51 assert(deref->deref_type == nir_deref_type_array);
53 if (nir_src_is_const(deref->arr.index) && index == NULL) {
55 base_index += nir_src_as_uint(deref->arr.index) * array_elements;
65 nir_ssa_for_src(b, deref->arr.index, 1)));
70 deref = parent;
77 assert(deref
[all...]
H A Dlower_texture_projection.cpp67 ir_dereference *deref = new(mem_ctx) ir_dereference_variable(var); local in function:lower_texture_projection_visitor::visit_leave
72 ir_assignment *assign = new(mem_ctx) ir_assignment(deref, expr);
75 deref = new(mem_ctx) ir_dereference_variable(var);
79 deref);
82 deref = new(mem_ctx) ir_dereference_variable(var);
86 deref);
H A Dgl_nir_lower_bindless_images.c28 * bindless_image_* intrinsic and adding a load_deref on the previous deref
46 nir_deref_instr *deref; local in function:lower_impl
63 deref = nir_src_as_deref(intrinsic->src[0]);
64 var = nir_deref_instr_get_variable(deref);
71 if (deref->mode == nir_var_uniform && !var->data.bindless)
75 nir_ssa_def *handle = nir_load_deref(b, deref);
/xsrc/external/mit/MesaLib.old/dist/src/compiler/nir/
H A Dnir_lower_constant_initializers.c28 build_constant_load(nir_builder *b, nir_deref_instr *deref, nir_constant *c) argument
30 if (glsl_type_is_vector_or_scalar(deref->type)) {
33 glsl_get_vector_elements(deref->type),
34 glsl_get_bit_size(deref->type));
37 nir_store_deref(b, deref, &load->def, ~0);
38 } else if (glsl_type_is_matrix(deref->type)) {
39 unsigned cols = glsl_get_matrix_columns(deref->type);
40 unsigned rows = glsl_get_vector_elements(deref->type);
41 unsigned bit_size = glsl_get_bit_size(deref->type);
47 nir_store_deref(b, nir_build_deref_array_imm(b, deref,
[all...]
H A Dnir_deref.h38 /** A null-terminated array view of a deref chain
48 nir_deref_instr *deref, void *mem_ctx);
51 unsigned nir_deref_instr_get_const_offset(nir_deref_instr *deref,
54 nir_ssa_def *nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref,
H A Dnir_remove_dead_variables.c31 deref_used_for_not_store(nir_deref_instr *deref) argument
33 nir_foreach_use(src, &deref->dest.ssa) {
43 /* The first source of copy and store intrinsics is the deref to
65 add_var_use_deref(nir_deref_instr *deref, struct set *live) argument
67 if (deref->deref_type != nir_deref_type_var)
73 assert(deref->mode == deref->var->data.mode);
74 if (!(deref->mode & (nir_var_function_temp | nir_var_shader_temp | nir_var_mem_shared)) ||
75 deref_used_for_not_store(deref))
76 _mesa_set_add(live, deref
105 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:remove_dead_var_writes
[all...]
H A Dnir_lower_scratch.c38 deref_has_indirect(nir_deref_instr *deref) argument
40 while (deref->deref_type != nir_deref_type_var) {
41 if (deref->deref_type == nir_deref_type_array &&
42 nir_src_as_const_value(deref->arr.index) == NULL)
45 deref = nir_deref_instr_parent(deref);
58 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_load_store
59 nir_variable *var = nir_deref_instr_get_variable(deref);
62 nir_iadd_imm(b, nir_build_deref_offset(b, deref, size_align),
66 size_align(deref
127 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_lower_vars_to_scratch
[all...]
H A Dnir_lower_locals_to_regs.c50 for (const nir_deref_instr *deref = void_deref; deref; local in function:hash_deref
51 deref = nir_deref_instr_parent(deref)) {
52 switch (deref->deref_type) {
54 return _mesa_fnv32_1a_accumulate(hash, deref->var);
60 hash = _mesa_fnv32_1a_accumulate(hash, deref->strct.index);
64 unreachable("Invalid deref type");
92 unreachable("Invalid deref type");
100 get_reg_for_deref(nir_deref_instr *deref, struc argument
130 get_deref_reg_src(nir_deref_instr * deref,struct locals_to_regs_state * state) argument
194 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block
220 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block
[all...]
H A Dnir_deref.c31 nir_deref_instr *deref, void *mem_ctx)
33 assert(deref != NULL);
46 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) {
67 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d))
85 * Recursively removes unused deref instructions
93 /* If anyone is using this deref, leave it alone */
125 nir_deref_instr_ptr_as_array_stride(nir_deref_instr *deref) argument
127 switch (deref->deref_type) {
129 return glsl_get_explicit_stride(nir_deref_instr_parent(deref)->type);
131 return nir_deref_instr_ptr_as_array_stride(nir_deref_instr_parent(deref));
30 nir_deref_path_init(nir_deref_path * path,nir_deref_instr * deref,void * mem_ctx) argument
166 nir_deref_instr_get_const_offset(nir_deref_instr * deref,glsl_type_size_align_func size_align) argument
195 nir_build_deref_offset(nir_builder * b,nir_deref_instr * deref,glsl_type_size_align_func size_align) argument
270 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_fixup_deref_modes
515 rematerialize_deref_in_block(nir_deref_instr * deref,struct rematerialize_deref_state * state) argument
581 nir_deref_instr *deref = nir_src_as_deref(*src); local in function:rematerialize_deref_src
765 opt_deref_ptr_as_array(nir_builder * b,nir_deref_instr * deref) argument
824 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_deref_impl
[all...]
/xsrc/external/mit/MesaLib/dist/src/compiler/nir/
H A Dnir_remove_dead_variables.c31 deref_used_for_not_store(nir_deref_instr *deref) argument
33 nir_foreach_use(src, &deref->dest.ssa) {
43 /* The first source of copy and store intrinsics is the deref to
65 add_var_use_deref(nir_deref_instr *deref, struct set *live) argument
67 if (deref->deref_type != nir_deref_type_var)
73 if ((deref->var->data.mode & (nir_var_function_temp |
75 !deref_used_for_not_store(deref))
82 if ((deref->var->data.mode & nir_var_mem_shared) &&
83 !glsl_type_is_interface(deref->var->type) &&
84 !deref_used_for_not_store(deref))
121 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:remove_dead_var_writes
[all...]
H A Dnir_lower_locals_to_regs.c50 for (const nir_deref_instr *deref = void_deref; deref; local in function:hash_deref
51 deref = nir_deref_instr_parent(deref)) {
52 switch (deref->deref_type) {
54 return XXH32(&deref->var, sizeof(deref->var), hash);
60 hash = XXH32(&deref->strct.index, sizeof(deref->strct.index), hash);
64 unreachable("Invalid deref typ
100 get_reg_for_deref(nir_deref_instr * deref,struct locals_to_regs_state * state) argument
131 get_deref_reg_src(nir_deref_instr * deref,struct locals_to_regs_state * state) argument
195 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block
221 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block
[all...]
H A Dnir_deref.h38 /** A null-terminated array view of a deref chain
53 nir_deref_instr *deref, void *mem_ctx);
56 unsigned nir_deref_instr_get_const_offset(nir_deref_instr *deref,
59 nir_ssa_def *nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref,
62 nir_deref_path *nir_get_deref_path(void *mem_ctx, nir_deref_and_path *deref);
H A Dnir_lower_samplers.c40 nir_deref_instr *deref = nir_instr_as_deref(src->src.ssa->parent_instr); local in function:lower_tex_src_to_offset
41 while (deref->deref_type != nir_deref_type_var) {
42 assert(deref->parent.is_ssa);
44 nir_instr_as_deref(deref->parent.ssa->parent_instr);
46 assert(deref->deref_type == nir_deref_type_array);
48 if (nir_src_is_const(deref->arr.index) && index == NULL) {
50 unsigned index_in_array = nir_src_as_uint(deref->arr.index);
80 nir_ssa_for_src(b, deref->arr.index, 1)));
85 deref = parent;
92 assert(deref
[all...]
H A Dnir_lower_clip_disable.c41 recursive_if_chain(nir_builder *b, nir_deref_instr *deref, nir_ssa_def *value, unsigned clip_plane_enable, nir_ssa_def *index, unsigned start, unsigned end) argument
46 nir_store_deref(b, deref, value, 1 << start);
48 nir_store_deref(b, deref, nir_imm_int(b, 0), 1 << start);
54 recursive_if_chain(b, deref, value, clip_plane_enable, index, start, mid);
56 recursive_if_chain(b, deref, value, clip_plane_enable, index, mid, end);
72 nir_deref_instr *deref = nir_src_as_deref(instr->src[0]); local in function:lower_clip_plane_store
74 out = nir_deref_instr_get_variable(deref);
81 if (deref->deref_type == nir_deref_type_var) {
96 nir_store_deref(b, deref, nir_vec(b, components, instr->num_components), wrmask);
97 } else if (nir_src_is_const(deref
[all...]
H A Dnir_deref.c44 nir_deref_instr *deref, void *mem_ctx)
46 assert(deref != NULL);
59 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) {
82 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) {
103 * Recursively removes unused deref instructions
111 /* If anyone is using this deref, leave it alone */
157 nir_deref_instr_has_complex_use(nir_deref_instr *deref) argument
159 nir_foreach_use(use_src, &deref->dest.ssa) {
166 /* A var deref has no sources */
169 /* If a deref show
43 nir_deref_path_init(nir_deref_path * path,nir_deref_instr * deref,void * mem_ctx) argument
243 nir_deref_instr_array_stride(nir_deref_instr * deref) argument
294 nir_deref_instr_get_const_offset(nir_deref_instr * deref,glsl_type_size_align_func size_align) argument
328 nir_build_deref_offset(nir_builder * b,nir_deref_instr * deref,glsl_type_size_align_func size_align) argument
410 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_fixup_deref_modes
656 nir_get_deref_path(void * mem_ctx,nir_deref_and_path * deref) argument
684 rematerialize_deref_in_block(nir_deref_instr * deref,struct rematerialize_deref_state * state) argument
754 nir_deref_instr *deref = nir_src_as_deref(*src); local in function:rematerialize_deref_src
979 opt_restrict_deref_modes(nir_deref_instr * deref) argument
1121 opt_deref_ptr_as_array(nir_builder * b,nir_deref_instr * deref) argument
1230 nir_deref_instr *deref = nir_src_as_deref(load->src[0]); local in function:opt_load_vec_deref
1271 nir_deref_instr *deref = nir_src_as_deref(store->src[0]); local in function:opt_store_vec_deref
1314 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:opt_known_deref_mode_is
1348 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_deref_impl
[all...]
H A Dnir_lower_vec3_to_vec4.c49 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_vec3_to_vec4_impl
50 if (!nir_deref_mode_is_in_set(deref, modes))
54 glsl_type_replace_vec3_with_vec4(deref->type);
55 if (deref->type != vec4_type) {
56 deref->type = vec4_type;
69 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_vec3_to_vec4_impl
70 if (!nir_deref_mode_is_in_set(deref, modes))
90 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_vec3_to_vec4_impl
91 if (!nir_deref_mode_is_in_set(deref, modes))
H A Dnir_opt_large_constants.c68 build_constant_load(nir_builder *b, nir_deref_instr *deref, argument
71 nir_variable *var = nir_deref_instr_get_variable(deref);
73 const unsigned bit_size = glsl_get_bit_size(deref->type);
74 const unsigned num_components = glsl_get_vector_elements(deref->type);
81 size_align(deref->type, &deref_size, &deref_align);
83 nir_ssa_def *src = nir_build_deref_offset(b, deref, size_align);
93 assert(glsl_type_is_boolean(deref->type));
105 nir_deref_instr *deref, nir_const_value *val,
109 assert(!nir_deref_instr_has_indirect(deref));
110 const unsigned bit_size = glsl_get_bit_size(deref
104 handle_constant_store(void * mem_ctx,struct var_info * info,nir_deref_instr * deref,nir_const_value * val,unsigned writemask,glsl_type_size_align_func size_align) argument
206 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_large_constants
353 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_opt_large_constants
374 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_opt_large_constants
[all...]

Completed in 22 milliseconds

1234567891011>>