diff options
author | Vadim Girlin <[email protected]> | 2013-05-03 13:01:31 +0400 |
---|---|---|
committer | Vadim Girlin <[email protected]> | 2013-05-03 16:53:42 +0400 |
commit | f92bd0958e5f6453aa5cf8d54cd57546ca5de963 (patch) | |
tree | 9aea2382a26b6a748ef36d2653d53b9fa24551f8 | |
parent | 3c201a22ca5f3dfec4794d7959b9c3fd8c3a2607 (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.cpp | 3 |
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()) { |