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