diff options
author | Brian Paul <[email protected]> | 2008-12-11 19:34:43 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-12-11 19:34:43 -0700 |
commit | 1737f2dbdd8d9d6b1da140340323cbf83f7bd592 (patch) | |
tree | 877d8f57ef71b7d0cdc975490e210e7ad5ba7878 /src/mesa | |
parent | 2760bca1e13e62943affd762ed560bc30fbcc27a (diff) |
mesa: consolidate variable declaration initializer code for globals too
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/shader/slang/slang_codegen.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c index 07928c68a0e..7e32c1ac2fe 100644 --- a/src/mesa/shader/slang/slang_codegen.c +++ b/src/mesa/shader/slang/slang_codegen.c @@ -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); |