mesa: Branch 'master' - 2 commits

Brian Paul brianp at kemper.freedesktop.org
Mon Mar 26 21:10:03 UTC 2007


 src/mesa/shader/slang/slang_codegen.c |   13 +++++++++++++
 src/mesa/shader/slang/slang_emit.c    |    4 ++--
 2 files changed, 15 insertions(+), 2 deletions(-)

New commits:
diff-tree c3da0bd7dde9febf206efac88bb67e98dfc90baa (from e508155d1658571244aeb981dd42e452417d4af4)
Author: Brian <brian at yutani.localnet.net>
Date:   Mon Mar 26 15:09:59 2007 -0600

    undo some debugging hacks

diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c
index b318402..77470ac 100644
--- a/src/mesa/shader/slang/slang_emit.c
+++ b/src/mesa/shader/slang/slang_emit.c
@@ -1554,8 +1554,8 @@ _slang_emit_code(slang_ir_node *n, slang
    emitInfo.prog = prog;
 
    emitInfo.EmitHighLevelInstructions = ctx->Shader.EmitHighLevelInstructions;
-   emitInfo.EmitCondCodes = 0; /* XXX temporary! */
-   emitInfo.EmitComments = 1 + ctx->Shader.EmitComments;
+   emitInfo.EmitCondCodes = ctx->Shader.EmitCondCodes;
+   emitInfo.EmitComments = ctx->Shader.EmitComments;
 
    (void) emit(&emitInfo, n);
 
diff-tree e508155d1658571244aeb981dd42e452417d4af4 (from 0426d3c0c85b652c2c4e8509f709863e08644295)
Author: Brian <brian at yutani.localnet.net>
Date:   Mon Mar 26 15:02:21 2007 -0600

    dead code elimination for constant-valued if/then/else

diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 4a67d45..f9dae9f 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -1482,6 +1482,19 @@ _slang_gen_if(slang_assemble_ctx * A, co
     */
    const GLboolean haveElseClause = !_slang_is_noop(&oper->children[2]);
    slang_ir_node *ifNode, *cond, *ifBody, *elseBody;
+   GLboolean isConst, constTrue;
+
+   isConst = _slang_is_constant_cond(&oper->children[0], &constTrue);
+   if (isConst) {
+      if (constTrue) {
+         /* if (true) ... */
+         return _slang_gen_operation(A, &oper->children[1]);
+      }
+      else {
+         /* if (false) ... */
+         return _slang_gen_operation(A, &oper->children[2]);
+      }
+   }
 
    cond = _slang_gen_operation(A, &oper->children[0]);
    cond = new_cond(cond);



More information about the mesa-commit mailing list