r600g/sb: fix issue with DCE between GVN and GCM (v2)
authorVadim Girlin <vadimgirlin@gmail.com>
Mon, 14 Oct 2013 13:19:12 +0000 (17:19 +0400)
committerVadim Girlin <vadimgirlin@gmail.com>
Thu, 17 Oct 2013 03:57:49 +0000 (07:57 +0400)
commit62c8149472903a2f3fc4d319c3799b9e729419d5
tree1d530e0aa6cc7c210c7ae27fbd5d5a3b669630ac
parent38fe3bd5f21f72cd2d98f8ab91df0d4f534a71be
r600g/sb: fix issue with DCE between GVN and GCM (v2)

We can't perform DCE using the liveness pass between GVN and GCM
because it relies on the correct schedule, but GVN doesn't care about
preserving correctness - it's rescheduled later by GCM.

This patch makes dce_cleanup pass perform simple DCE
between GVN and GCM instead of relying on liveness pass.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=70088

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/r600/sb/sb_core.cpp
src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp
src/gallium/drivers/r600/sb/sb_pass.h
src/gallium/drivers/r600/sb/sb_shader.h