summaryrefslogtreecommitdiffstats
path: root/src/glsl/nir/nir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl/nir/nir.h')
-rw-r--r--src/glsl/nir/nir.h46
1 files changed, 16 insertions, 30 deletions
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
index 9dbda448dd6..562c5c5cc8c 100644
--- a/src/glsl/nir/nir.h
+++ b/src/glsl/nir/nir.h
@@ -65,7 +65,6 @@ name(const in_type *parent) \
return exec_node_data(out_type, parent, field); \
}
-struct nir_function_overload;
struct nir_function;
struct nir_shader;
struct nir_instr;
@@ -785,7 +784,7 @@ typedef struct {
nir_deref_var **params;
nir_deref_var *return_deref;
- struct nir_function_overload *callee;
+ struct nir_function *callee;
} nir_call_instr;
#define INTRINSIC(name, num_srcs, src_components, has_dest, dest_components, \
@@ -1339,8 +1338,8 @@ typedef enum {
typedef struct {
nir_cf_node cf_node;
- /** pointer to the overload of which this is an implementation */
- struct nir_function_overload *overload;
+ /** pointer to the function of which this is an implementation */
+ struct nir_function *function;
struct exec_list body; /** < list of nir_cf_node */
@@ -1425,31 +1424,23 @@ typedef struct {
const struct glsl_type *type;
} nir_parameter;
-typedef struct nir_function_overload {
+typedef struct nir_function {
struct exec_node node;
+ const char *name;
+ struct nir_shader *shader;
+
unsigned num_params;
nir_parameter *params;
const struct glsl_type *return_type;
- nir_function_impl *impl; /** < NULL if the overload is only declared yet */
-
- /** pointer to the function of which this is an overload */
- struct nir_function *function;
-} nir_function_overload;
-
-typedef struct nir_function {
- struct exec_node node;
-
- struct exec_list overload_list; /** < list of nir_function_overload */
- const char *name;
- struct nir_shader *shader;
+ /** The implementation of this function.
+ *
+ * If the function is only declared and not implemented, this is NULL.
+ */
+ nir_function_impl *impl;
} nir_function;
-#define nir_function_first_overload(func) \
- exec_node_data(nir_function_overload, \
- exec_list_get_head(&(func)->overload_list), node)
-
typedef struct nir_shader_compiler_options {
bool lower_ffma;
bool lower_flrp;
@@ -1610,10 +1601,8 @@ typedef struct nir_shader {
gl_shader_stage stage;
} nir_shader;
-#define nir_foreach_overload(shader, overload) \
- foreach_list_typed(nir_function, func, node, &(shader)->functions) \
- foreach_list_typed(nir_function_overload, overload, node, \
- &(func)->overload_list)
+#define nir_foreach_function(shader, func) \
+ foreach_list_typed(nir_function, func, node, &(shader)->functions)
nir_shader *nir_shader_create(void *mem_ctx,
gl_shader_stage stage,
@@ -1649,10 +1638,7 @@ nir_variable *nir_local_variable_create(nir_function_impl *impl,
/** creates a function and adds it to the shader's list of functions */
nir_function *nir_function_create(nir_shader *shader, const char *name);
-/** creates a null function returning null */
-nir_function_overload *nir_function_overload_create(nir_function *func);
-
-nir_function_impl *nir_function_impl_create(nir_function_overload *func);
+nir_function_impl *nir_function_impl_create(nir_function *func);
nir_block *nir_block_create(nir_shader *shader);
nir_if *nir_if_create(nir_shader *shader);
@@ -1677,7 +1663,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,
- nir_function_overload *callee);
+ nir_function *callee);
nir_tex_instr *nir_tex_instr_create(nir_shader *shader, unsigned num_srcs);