Mesa (master): r600g/sb: fix constant propagation in gvn pass

Vadim Girlin vadimg at kemper.freedesktop.org
Fri May 3 14:27:22 UTC 2013


Module: Mesa
Branch: master
Commit: f92bd0958e5f6453aa5cf8d54cd57546ca5de963
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f92bd0958e5f6453aa5cf8d54cd57546ca5de963

Author: Vadim Girlin <vadimgirlin at gmail.com>
Date:   Fri May  3 13:01:31 2013 +0400

r600g/sb: fix constant propagation in gvn pass

Fixes the bug that prevented propagation of literals in some cases.

Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>

---

 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 6798917..fe4f884 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()) {




More information about the mesa-commit mailing list