[Mesa-dev] [PATCH] gallivm: Fix indirect immediate registers.

jfonseca at vmware.com jfonseca at vmware.com
Mon Jul 1 12:54:57 PDT 2013


From: José Fonseca <jfonseca at vmware.com>

If reg->Register.Indirect then the immediate is not truly a constant
expression.

There is no performance regression -- LLVMBuildBitCast will fallback to
LLVMConstBitCast internally when the argument is a constant.
---
 src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
index 0bbc408..f641859 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
@@ -1026,9 +1026,9 @@ emit_fetch_immediate(
    }
 
    if (stype == TGSI_TYPE_UNSIGNED) {
-      res = LLVMConstBitCast(res, bld_base->uint_bld.vec_type);
+      res = LLVMBuildBitCast(builder, res, bld_base->uint_bld.vec_type, "");
    } else if (stype == TGSI_TYPE_SIGNED) {
-      res = LLVMConstBitCast(res, bld_base->int_bld.vec_type);
+      res = LLVMBuildBitCast(builder, res, bld_base->int_bld.vec_type, "");
    }
    return res;
 }
-- 
1.8.1.2



More information about the mesa-dev mailing list