diff options
author | Eric Anholt <eric@anholt.net> | 2010-04-06 10:07:20 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-04-06 11:42:34 -0700 |
commit | 3fff009af169313fa22996d93ad195cf12729763 (patch) | |
tree | 5abf26947b5438607930ef1c3675b38986481b2e | |
parent | ec1949e8041b63f59aab63440ad9eeeddd226ce3 (diff) |
Fold constant expressions in if conditionals.
Fixes up 3 more expressions in CorrectParse2.frag.
-rw-r--r-- | ir_constant_folding.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ir_constant_folding.cpp b/ir_constant_folding.cpp index 306f211fe5..b9dee37edf 100644 --- a/ir_constant_folding.cpp +++ b/ir_constant_folding.cpp @@ -127,5 +127,9 @@ ir_constant_folding_visitor::visit(ir_return *ir) void ir_constant_folding_visitor::visit(ir_if *ir) { - (void) ir; + ir_constant *const_val = ir->condition->constant_expression_value(); + if (const_val) + ir->condition = const_val; + else + ir->condition->accept(this); } |