------ We might want to merge u_vector and this array, or just replace this implementation completely. Having two separate implementations, where one of them has one sole user seems a bit wierd. --- src/compiler/Makefile.sources | 1 - src/compiler/spirv/vtn_cfg.c | 6 +++--- src/compiler/spirv/vtn_private.h | 4 ++-- src/util/Makefile.sources | 1 + src/{compiler/nir/nir_array.h => util/dyn_array.h} | 18 +++++++++--------- 5 files changed, 15 insertions(+), 15 deletions(-) rename src/{compiler/nir/nir_array.h => util/dyn_array.h} (86%)
diff --git a/src/compiler/Makefile.sources b/src/compiler/Makefile.sources index be2215cc10..9c8f802cd2 100644 --- a/src/compiler/Makefile.sources +++ b/src/compiler/Makefile.sources @@ -178,7 +178,6 @@ NIR_GENERATED_FILES = \ NIR_FILES = \ nir/nir.c \ nir/nir.h \ - nir/nir_array.h \ nir/nir_builder.h \ nir/nir_clone.c \ nir/nir_constant_expressions.h \ diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c index 62b9056990..14255798cb 100644 --- a/src/compiler/spirv/vtn_cfg.c +++ b/src/compiler/spirv/vtn_cfg.c @@ -183,7 +183,7 @@ vtn_add_case(struct vtn_builder *b, struct vtn_switch *swtch, list_inithead(&c->body); c->start_block = case_block; c->fallthrough = NULL; - nir_array_init(&c->values, b); + dyn_array_init(&c->values, b); c->is_default = false; c->visited = false; @@ -195,7 +195,7 @@ vtn_add_case(struct vtn_builder *b, struct vtn_switch *swtch, if (is_default) { case_block->switch_case->is_default = true; } else { - nir_array_add(&case_block->switch_case->values, uint32_t, val); + dyn_array_add(&case_block->switch_case->values, uint32_t, val); } } @@ -722,7 +722,7 @@ vtn_emit_cf_list(struct vtn_builder *b, struct list_head *cf_list, } nir_ssa_def *cond = NULL; - nir_array_foreach(&cse->values, uint32_t, val) { + dyn_array_foreach(&cse->values, uint32_t, val) { nir_ssa_def *is_val = nir_ieq(&b->nb, sel, nir_imm_int(&b->nb, *val)); diff --git a/src/compiler/spirv/vtn_private.h b/src/compiler/spirv/vtn_private.h index 9302611803..9e0a2137e2 100644 --- a/src/compiler/spirv/vtn_private.h +++ b/src/compiler/spirv/vtn_private.h @@ -27,7 +27,7 @@ #include "nir/nir.h" #include "nir/nir_builder.h" -#include "nir/nir_array.h" +#include "util/dyn_array.h" #include "nir_spirv.h" #include "spirv.h" @@ -112,7 +112,7 @@ struct vtn_case { struct vtn_case *fallthrough; /* The uint32_t values that map to this case */ - nir_array values; + dyn_array values; /* True if this is the default case */ bool is_default; diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources index d2ae5e734d..b24611a363 100644 --- a/src/util/Makefile.sources +++ b/src/util/Makefile.sources @@ -8,6 +8,7 @@ MESA_UTIL_FILES := \ debug.h \ disk_cache.c \ disk_cache.h \ + dyn_array.h \ format_r11g11b10f.h \ format_rgb9e5.h \ format_srgb.h \ diff --git a/src/compiler/nir/nir_array.h b/src/util/dyn_array.h similarity index 86% rename from src/compiler/nir/nir_array.h rename to src/util/dyn_array.h index 1db4e8cea3..8a06990ab4 100644 --- a/src/compiler/nir/nir_array.h +++ b/src/util/dyn_array.h @@ -36,10 +36,10 @@ typedef struct { size_t size; size_t alloc; void *data; -} nir_array; +} dyn_array; static inline void -nir_array_init(nir_array *arr, void *mem_ctx) +dyn_array_init(dyn_array *arr, void *mem_ctx) { arr->mem_ctx = mem_ctx; arr->size = 0; @@ -48,7 +48,7 @@ nir_array_init(nir_array *arr, void *mem_ctx) } static inline void -nir_array_fini(nir_array *arr) +dyn_array_fini(dyn_array *arr) { if (arr->mem_ctx) ralloc_free(arr->data); @@ -56,18 +56,18 @@ nir_array_fini(nir_array *arr) free(arr->data); } -#define NIR_ARRAY_INITIAL_SIZE 64 +#define DYN_ARRAY_INITIAL_SIZE 64 /* Increments the size of the array by the given ammount and returns a * pointer to the beginning of the newly added space. */ static inline void * -nir_array_grow(nir_array *arr, size_t additional) +dyn_array_grow(dyn_array *arr, size_t additional) { size_t new_size = arr->size + additional; if (new_size > arr->alloc) { if (arr->alloc == 0) - arr->alloc = NIR_ARRAY_INITIAL_SIZE; + arr->alloc = DYN_ARRAY_INITIAL_SIZE; while (new_size > arr->alloc) arr->alloc *= 2; @@ -84,10 +84,10 @@ nir_array_grow(nir_array *arr, size_t additional) return ptr; } -#define nir_array_add(arr, type, elem) \ - *(type *)nir_array_grow(arr, sizeof(type)) = (elem) +#define dyn_array_add(arr, type, elem) \ + *(type *)dyn_array_grow(arr, sizeof(type)) = (elem) -#define nir_array_foreach(arr, type, elem) \ +#define dyn_array_foreach(arr, type, elem) \ for (type *elem = (type *)(arr)->data; \ elem < (type *)((char *)(arr)->data + (arr)->size); elem++) -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev