diff options
author | Eric Anholt <eric@anholt.net> | 2010-04-06 11:42:01 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-04-06 11:42:34 -0700 |
commit | e5a9e70cde3dda27dca045b12c5a818215b1a449 (patch) | |
tree | 21fc127b59b2a08cb101673ace69e8a9d983dace | |
parent | bae5be356eef9efd893e8937d11ecb1b5f3feee6 (diff) |
Descend down the tree in more locations in constant folding.
-rw-r--r-- | ir_constant_folding.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ir_constant_folding.cpp b/ir_constant_folding.cpp index 006eb5ffcf..eabdc240ad 100644 --- a/ir_constant_folding.cpp +++ b/ir_constant_folding.cpp @@ -73,6 +73,8 @@ ir_constant_folding_visitor::visit(ir_expression *ir) op[operand] = ir->operands[operand]->constant_expression_value(); if (op[operand]) { ir->operands[operand] = op[operand]; + } else { + ir->operands[operand]->accept(this); } } } @@ -81,7 +83,7 @@ ir_constant_folding_visitor::visit(ir_expression *ir) void ir_constant_folding_visitor::visit(ir_swizzle *ir) { - (void) ir; + ir->val->accept(this); } |