glsl: Pick ast_conditional branch regardless of op1/2 being constant.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 22 Aug 2014 04:49:07 +0000 (21:49 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 3 Feb 2015 01:14:55 +0000 (17:14 -0800)
commit0f06f12c119ab9518f513f0a9bfdd06e3f5ce0c4
tree4aad398bce5c776d74f20e8254332e14242ae2de
parent534f07ee85a3a4981171e3e908578e38b2a9770d
glsl: Pick ast_conditional branch regardless of op1/2 being constant.

If the ?: operator's condition is a constant value, and both branches
were pure expressions, we can just make the resulting value one or the
other.

Previously, we only did this if op[1] and op[2] were also constant
values - but there's no actual reason for that restriction.

No changes in shader-db, probably because we usually optimize this later
anyway.  But it does make us generate less stupid code up front.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/ast_to_hir.cpp