glsl: In lower_jumps.cpp, lower both branches of a conditional.
authorPaul Berry <stereotype441@gmail.com>
Fri, 1 Jul 2011 22:33:36 +0000 (15:33 -0700)
committerPaul Berry <stereotype441@gmail.com>
Fri, 8 Jul 2011 16:59:30 +0000 (09:59 -0700)
commite71b4ab8a64bf978b2036976a41e30996eebb0c8
tree254824b4211a390f847757cbae9d9f41d65d9f48
parent382cee91a4bbbee45897239e6802ccaa5a5ad9c3
glsl: In lower_jumps.cpp, lower both branches of a conditional.

Previously, lower_jumps.cpp would break out of its loop after lowering
a jump instruction in just the then- or else-branch of a conditional,
and it would fail to lower a jump instruction occurring in the other
branch.

Without this patch, lower_jumps.cpp may require multiple passes in
order to lower all jumps.  This results in sub-optimal output because
lower_jumps.cpp produces a brand new set of temporary variables each
time it is run, and the redundant temporary variables are not
guaranteed to be eliminated by later optimization passes.

Fixes unit test test_lower_returns_4.
src/glsl/lower_jumps.cpp