On Sat, 2018-09-22 at 16:39 -0500, Jason Ekstrand wrote: > Previously, we would create temporary variables and fill them out. > Instead, we create as many function parameters as we need and pass > them > through as SSA defs.
(...) > void > vtn_handle_function_call(struct vtn_builder *b, SpvOp opcode, > const uint32_t *w, unsigned count) > @@ -86,12 +215,8 @@ vtn_handle_function_call(struct vtn_builder *b, > SpvOp opcode, > call->params[param_idx++] = > nir_src_for_ssa(vtn_pointer_to_ssa(b, pointer)); > } else { > - /* This is a regular SSA value and we need a temporary */ > - nir_variable *tmp = > - nir_local_variable_create(b->nb.impl, arg_type->type, > "arg_tmp"); > - nir_deref_instr *tmp_deref = nir_build_deref_var(&b->nb, > tmp); > - vtn_local_store(b, vtn_ssa_value(b, arg_id), tmp_deref); > - call->params[param_idx++] = nir_src_for_ssa(&tmp_deref- > >dest.ssa); > + vtn_ssa_value_add_to_call_params(b, vtn_ssa_value(b, w[4 + > i]), arg_id instead of w[4 + i] for consistency? Iago > + arg_type, call, > ¶m_idx); > } > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev