vc4: Convert vc4_opt_dead_code to work in the presence of control flow.
authorEric Anholt <eric@anholt.net>
Fri, 8 Jul 2016 23:23:38 +0000 (16:23 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 14 Jul 2016 06:54:15 +0000 (23:54 -0700)
commitee69cfd11d34e6570c579c42f9cd8b5c8ea36bcf
tree5a8a817d69a9ca12e870dc89453ff988bedd550c
parent4e797bd98f3aaea8d295c661f7501053156d211a
vc4: Convert vc4_opt_dead_code to work in the presence of control flow.

With control flow, we can't be sure that we'll see the uses of a variable
before its def as we walk backwards.  Given that NIR is eliminating our
long chains of dead code, a simple solution for now seems fine.

This slightly changes the order of some optimizations, and so an opt_vpm
happens before opt_dce, causing 3 dead MOVs to be turned into dead FMAXes
in Minecraft:

instructions in affected programs:     52 -> 54 (3.85%)
src/gallium/drivers/vc4/vc4_opt_dead_code.c