summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ast_to_hir.cpp8
-rw-r--r--builtin_function.cpp4
-rw-r--r--glsl_types.cpp5
-rw-r--r--ir_print_visitor.cpp10
4 files changed, 12 insertions, 15 deletions
diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp
index d74e54c602..aa9a3a1a04 100644
--- a/ast_to_hir.cpp
+++ b/ast_to_hir.cpp
@@ -1925,13 +1925,9 @@ ast_function_definition::hir(exec_list *instructions,
*/
state->symbols->push_scope();
foreach_iter(exec_list_iterator, iter, signature->parameters) {
- ir_variable *const proto = ((ir_instruction *) iter.get())->as_variable();
+ ir_variable *const var = ((ir_instruction *) iter.get())->as_variable();
- assert(proto != NULL);
-
- ir_variable *const var = proto->clone();
-
- signature->body.push_tail(var);
+ assert(var != NULL);
/* The only way a parameter would "exist" is if two parameters have
* the same name.
diff --git a/builtin_function.cpp b/builtin_function.cpp
index 9cefbd4ae5..e537141e3f 100644
--- a/builtin_function.cpp
+++ b/builtin_function.cpp
@@ -224,13 +224,9 @@ generate_function_instance(ir_function *f,
for (i = 0; i < n_args; i++) {
ir_variable *var = new ir_variable(type, arg_names[i]);
- var = new ir_variable(type, arg_names[i]);
var->mode = ir_var_in;
sig->parameters.push_tail(var);
- var = new ir_variable(type, arg_names[i]);
- var->mode = ir_var_in;
- sig->body.push_tail(var);
declarations[i] = var;
}
diff --git a/glsl_types.cpp b/glsl_types.cpp
index b7abdaef2c..c8d18b9ee7 100644
--- a/glsl_types.cpp
+++ b/glsl_types.cpp
@@ -204,11 +204,6 @@ generate_constructor_intro(const glsl_type *type, unsigned parameter_count,
var->mode = ir_var_in;
signature->parameters.push_tail(var);
- var = new ir_variable(parameter_type, names[i]);
-
- var->mode = ir_var_in;
- signature->body.push_tail(var);
-
declarations[i] = var;
}
diff --git a/ir_print_visitor.cpp b/ir_print_visitor.cpp
index 8396973f6c..908f1c3ad8 100644
--- a/ir_print_visitor.cpp
+++ b/ir_print_visitor.cpp
@@ -67,6 +67,7 @@ void ir_print_visitor::visit(ir_variable *ir)
void ir_print_visitor::visit(ir_label *ir)
{
printf("\n(label %s\n", ir->label);
+
ir->signature->accept(this);
printf(")");
}
@@ -74,6 +75,15 @@ void ir_print_visitor::visit(ir_label *ir)
void ir_print_visitor::visit(ir_function_signature *ir)
{
+ printf("(paramaters\n");
+ foreach_iter(exec_list_iterator, iter, ir->parameters) {
+ ir_variable *const inst = (ir_variable *) iter.get();
+
+ inst->accept(this);
+ printf("\n");
+ }
+ printf(")\n");
+
foreach_iter(exec_list_iterator, iter, ir->body) {
ir_instruction *const inst = (ir_instruction *) iter.get();