Revert "nir: const nir_call_instr::callee"

This reverts commit db57db5317.  When
building IR, nothing is really immutable and, since C has no concept of
constness propagating beyond the first pointer, we have to be vary
careful with how we use it.  To just throw const into a function like
this is a lie.

Instead, we should just drop the unneeded const in spirv_to_nir which
this commit does along with the revert.
This commit is contained in:
Jason Ekstrand
2019-03-19 10:18:49 -05:00
parent 43b6dd05f7
commit cbfe31ccbe
3 changed files with 4 additions and 4 deletions

View File

@@ -515,7 +515,7 @@ nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op)
} }
nir_call_instr * nir_call_instr *
nir_call_instr_create(nir_shader *shader, const nir_function *callee) nir_call_instr_create(nir_shader *shader, nir_function *callee)
{ {
const unsigned num_params = callee->num_params; const unsigned num_params = callee->num_params;
nir_call_instr *instr = nir_call_instr *instr =

View File

@@ -1084,7 +1084,7 @@ unsigned nir_deref_instr_ptr_as_array_stride(nir_deref_instr *instr);
typedef struct { typedef struct {
nir_instr instr; nir_instr instr;
const struct nir_function *callee; struct nir_function *callee;
unsigned num_params; unsigned num_params;
nir_src params[]; nir_src params[];
@@ -2435,7 +2435,7 @@ nir_intrinsic_instr *nir_intrinsic_instr_create(nir_shader *shader,
nir_intrinsic_op op); nir_intrinsic_op op);
nir_call_instr *nir_call_instr_create(nir_shader *shader, nir_call_instr *nir_call_instr_create(nir_shader *shader,
const nir_function *callee); nir_function *callee);
nir_tex_instr *nir_tex_instr_create(nir_shader *shader, unsigned num_srcs); nir_tex_instr *nir_tex_instr_create(nir_shader *shader, unsigned num_srcs);

View File

@@ -4492,7 +4492,7 @@ vtn_create_builder(const uint32_t *words, size_t word_count,
static nir_function * static nir_function *
vtn_emit_kernel_entry_point_wrapper(struct vtn_builder *b, vtn_emit_kernel_entry_point_wrapper(struct vtn_builder *b,
const nir_function *entry_point) nir_function *entry_point)
{ {
vtn_assert(entry_point == b->entry_point->func->impl->function); vtn_assert(entry_point == b->entry_point->func->impl->function);
vtn_fail_if(!entry_point->name, "entry points are required to have a name"); vtn_fail_if(!entry_point->name, "entry points are required to have a name");