From: Nicolai Hähnle Date: Sat, 29 Jul 2017 07:17:53 +0000 (+0200) Subject: radeonsi: ensure that temp array allocas are in the entry block X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2879a602dd5d133c792d262b6be98aa6f810c16d;p=mesa.git 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@lists.freedesktop.org Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c index 9c4a2343f54..df37267d37d 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;