mesa: consolidate variable declaration initializer code for globals too

This commit is contained in:
Brian Paul
2008-12-11 19:34:43 -07:00
parent 2760bca1e1
commit 1737f2dbdd
+3 -19
View File
@@ -2576,6 +2576,7 @@ _slang_gen_var_decl(slang_assemble_ctx *A, slang_variable *var,
#endif
}
/* constant-folding, etc here */
_slang_simplify(initializer, &A->space, A->atoms);
init = _slang_gen_operation(A, initializer);
@@ -3941,26 +3942,9 @@ _slang_codegen_global_variable(slang_assemble_ctx *A, slang_variable *var,
slang_ir_node *n;
/* IR node to declare the variable */
n = _slang_gen_var_decl(A, var, NULL);
/* IR code for the var's initializer, if present */
if (var->initializer) {
slang_ir_node *lhs, *rhs, *init;
/* Generate IR_COPY instruction to initialize the variable */
lhs = new_node0(IR_VAR);
lhs->Var = var;
lhs->Store = n->Store;
/* constant folding, etc */
_slang_simplify(var->initializer, &A->space, A->atoms);
rhs = _slang_gen_operation(A, var->initializer);
assert(rhs);
init = new_node2(IR_COPY, lhs, rhs);
n = new_seq(n, init);
}
n = _slang_gen_var_decl(A, var, var->initializer);
/* emit GPU instructions */
success = _slang_emit_code(n, A->vartable, A->program, GL_FALSE, A->log);
_slang_free_ir_tree(n);