summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Girlin <[email protected]>2013-05-03 13:01:31 +0400
committerVadim Girlin <[email protected]>2013-05-03 16:53:42 +0400
commitf92bd0958e5f6453aa5cf8d54cd57546ca5de963 (patch)
tree9aea2382a26b6a748ef36d2653d53b9fa24551f8
parent3c201a22ca5f3dfec4794d7959b9c3fd8c3a2607 (diff)
r600g/sb: fix constant propagation in gvn pass
Fixes the bug that prevented propagation of literals in some cases. Signed-off-by: Vadim Girlin <[email protected]>
-rw-r--r--src/gallium/drivers/r600/sb/sb_gvn.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_gvn.cpp b/src/gallium/drivers/r600/sb/sb_gvn.cpp
index 6798917b189..fe4f884e21f 100644
--- a/src/gallium/drivers/r600/sb/sb_gvn.cpp
+++ b/src/gallium/drivers/r600/sb/sb_gvn.cpp
@@ -159,7 +159,8 @@ void gvn::process_alu_src_constants(node &n, value* &v) {
rp_kcache_tracker kc(sh);
- kc.try_reserve(v->gvn_source->select);
+ if (v->gvn_source->is_kcache())
+ kc.try_reserve(v->gvn_source->select);
// don't propagate 3rd constant to the trans-only instruction
if (!n.is_alu_packed()) {