summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2016-08-09 12:26:37 +0200
committerNicolai Hähnle <[email protected]>2016-08-17 12:11:25 +0200
commitc5798d631492063372eae63f665c791893c52325 (patch)
treea6ef05beda694cb1910998deb845ec4634c06f74 /src/gallium/drivers/radeon
parent41001ca4bdcb6effe9fd52f6d7db84084b8337a3 (diff)
gallium/radeon: use lp_build_alloca_undef
Avoid building all those store 0 / store undef instruction pairs that end up getting removed anyway. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r--src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
index 88c7b3c1d18..8076443f081 100644
--- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
+++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c
@@ -502,15 +502,6 @@ static LLVMValueRef fetch_system_value(struct lp_build_tgsi_context *bld_base,
return bitcast(bld_base, type, cval);
}
-static LLVMValueRef si_build_alloca_undef(struct gallivm_state *gallivm,
- LLVMTypeRef type,
- const char *name)
-{
- LLVMValueRef ptr = lp_build_alloca(gallivm, type, name);
- LLVMBuildStore(gallivm->builder, LLVMGetUndef(type), ptr);
- return ptr;
-}
-
static void emit_declaration(struct lp_build_tgsi_context *bld_base,
const struct tgsi_full_declaration *decl)
{
@@ -524,7 +515,7 @@ static void emit_declaration(struct lp_build_tgsi_context *bld_base,
for (idx = decl->Range.First; idx <= decl->Range.Last; idx++) {
unsigned chan;
for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) {
- ctx->soa.addr[idx][chan] = si_build_alloca_undef(
+ ctx->soa.addr[idx][chan] = lp_build_alloca_undef(
&ctx->gallivm,
ctx->soa.bld_base.uint_bld.elem_type, "");
}
@@ -588,7 +579,7 @@ static void emit_declaration(struct lp_build_tgsi_context *bld_base,
first + i / 4, "xyzw"[i % 4]);
#endif
ctx->temps[first * TGSI_NUM_CHANNELS + i] =
- si_build_alloca_undef(bld_base->base.gallivm,
+ lp_build_alloca_undef(bld_base->base.gallivm,
bld_base->base.vec_type,
name);
}
@@ -606,7 +597,7 @@ static void emit_declaration(struct lp_build_tgsi_context *bld_base,
* a shader ever reads from a channel that
* it never writes to.
*/
- ctx->undef_alloca = si_build_alloca_undef(
+ ctx->undef_alloca = lp_build_alloca_undef(
bld_base->base.gallivm,
bld_base->base.vec_type, "undef");
}
@@ -655,7 +646,7 @@ static void emit_declaration(struct lp_build_tgsi_context *bld_base,
unsigned chan;
assert(idx < RADEON_LLVM_MAX_OUTPUTS);
for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) {
- ctx->soa.outputs[idx][chan] = si_build_alloca_undef(
+ ctx->soa.outputs[idx][chan] = lp_build_alloca_undef(
&ctx->gallivm,
ctx->soa.bld_base.base.elem_type, "");
}