gallivm: Fix a long standing bug with nested if-then-else emission.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 10 Oct 2010 17:45:14 +0000 (18:45 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 10 Oct 2010 17:48:02 +0000 (18:48 +0100)
commit124adf253c5cd4940088ca2f10bc12da30375683
tree310a0c93c429e216c833a1ab095a23b060d2d1c2
parente2acc7be2683fd3c295480724b02f5a497309cfd
gallivm: Fix a long standing bug with nested if-then-else emission.

We can't patch true-block at end-if time, as there is no guarantee that
the block at the beginning of the true stanza is the same at the end of
the true stanza -- other control flow elements may have been emitted half
way the true stanza.

Although this bug surfaced recently with the commit to skip mip filtering
when lod is an integer the bug was always there, although probably it
was avoided until now: e.g., cubemap selection nests if-then-else on the
else stanza, which does not suffer from the same problem.
src/gallium/auxiliary/gallivm/lp_bld_flow.c