Lines Matching refs:deref_chain
85 struct vtn_access_chain *deref_chain) in vtn_access_chain_pointer_dereference() argument
88 vtn_access_chain_extend(b, base->chain, deref_chain->length); in vtn_access_chain_pointer_dereference()
95 vtn_assert(!deref_chain->ptr_as_array); in vtn_access_chain_pointer_dereference()
98 for (unsigned i = 0; i < deref_chain->length; i++) { in vtn_access_chain_pointer_dereference()
99 chain->link[start + i] = deref_chain->link[i]; in vtn_access_chain_pointer_dereference()
102 vtn_assert(deref_chain->link[i].mode == vtn_access_mode_literal); in vtn_access_chain_pointer_dereference()
103 type = type->members[deref_chain->link[i].id]; in vtn_access_chain_pointer_dereference()
179 struct vtn_access_chain *deref_chain) in vtn_ssa_offset_pointer_dereference() argument
192 if (deref_chain->length >= 1) { in vtn_ssa_offset_pointer_dereference()
194 vtn_access_link_as_ssa(b, deref_chain->link[0], 1); in vtn_ssa_offset_pointer_dereference()
206 } else if (deref_chain->ptr_as_array) { in vtn_ssa_offset_pointer_dereference()
208 vtn_assert(deref_chain->length >= 1); in vtn_ssa_offset_pointer_dereference()
209 desc_arr_idx = vtn_access_link_as_ssa(b, deref_chain->link[0], 1); in vtn_ssa_offset_pointer_dereference()
215 } else if (deref_chain->ptr_as_array && in vtn_ssa_offset_pointer_dereference()
239 vtn_assert(deref_chain->length >= 1); in vtn_ssa_offset_pointer_dereference()
241 vtn_access_link_as_ssa(b, deref_chain->link[0], 1); in vtn_ssa_offset_pointer_dereference()
280 if (deref_chain->ptr_as_array && idx == 0) { in vtn_ssa_offset_pointer_dereference()
285 vtn_assert(deref_chain->length >= 1); in vtn_ssa_offset_pointer_dereference()
288 vtn_access_link_as_ssa(b, deref_chain->link[idx], in vtn_ssa_offset_pointer_dereference()
294 for (; idx < deref_chain->length; idx++) { in vtn_ssa_offset_pointer_dereference()
308 vtn_access_link_as_ssa(b, deref_chain->link[idx], type->stride); in vtn_ssa_offset_pointer_dereference()
315 vtn_assert(deref_chain->link[idx].mode == vtn_access_mode_literal); in vtn_ssa_offset_pointer_dereference()
316 unsigned member = deref_chain->link[idx].id; in vtn_ssa_offset_pointer_dereference()
341 struct vtn_access_chain *deref_chain) in vtn_pointer_dereference() argument
344 return vtn_ssa_offset_pointer_dereference(b, base, deref_chain); in vtn_pointer_dereference()
346 return vtn_access_chain_pointer_dereference(b, base, deref_chain); in vtn_pointer_dereference()