Mesa (master): radeonsi: ensure that temp array allocas are in the entry block

Nicolai Hähnle nh at kemper.freedesktop.org
Mon Jul 31 13:00:46 UTC 2017


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

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Sat Jul 29 09:17:53 2017 +0200

radeonsi: ensure that temp array allocas are in the entry block

Otherwise, code generation fails. This has become necessary since some
shaders are wrapped in control flow.

Fixes: 081ac6e5c6d2 ("radeonsi/gfx9: always wrap GS and TCS in an if-block (v2)")
Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
index 9c4a2343f5..df37267d37 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
@@ -756,7 +756,7 @@ static void emit_declaration(struct lp_build_tgsi_context *bld_base,
 			 */
 			if (array_size > 16 ||
 			    !ctx->screen->llvm_has_working_vgpr_indexing) {
-				array_alloca = LLVMBuildAlloca(builder,
+				array_alloca = lp_build_alloca_undef(&ctx->gallivm,
 					LLVMArrayType(ctx->f32,
 						      array_size), "array");
 				ctx->temp_array_allocas[id] = array_alloca;




More information about the mesa-commit mailing list