From cbfe31ccbe3eafcb5aeb74457e3b67641fd54ae1 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 19 Mar 2019 10:18:49 -0500 Subject: [PATCH] Revert "nir: const `nir_call_instr::callee`" This reverts commit db57db5317e81fb4ce31bc294fdcc199db651542. 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. --- src/compiler/nir/nir.c | 2 +- src/compiler/nir/nir.h | 4 ++-- src/compiler/spirv/spirv_to_nir.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 62a80aa87ac..4a7c757db3a 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -515,7 +515,7 @@ nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op) } 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; nir_call_instr *instr = diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index f85b4be5a53..067287fab1c 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1084,7 +1084,7 @@ unsigned nir_deref_instr_ptr_as_array_stride(nir_deref_instr *instr); typedef struct { nir_instr instr; - const struct nir_function *callee; + struct nir_function *callee; unsigned num_params; nir_src params[]; @@ -2435,7 +2435,7 @@ nir_intrinsic_instr *nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op); 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); diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 0ef8d67519a..6d6aed287ac 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -4492,7 +4492,7 @@ vtn_create_builder(const uint32_t *words, size_t word_count, static nir_function * 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_fail_if(!entry_point->name, "entry points are required to have a name"); -- 2.30.2