commit aadeae03411c081e92c6014590dd51e3c49ab1ad Author: José Fonseca Date: Wed Apr 25 16:30:06 2012 +0100 gallivm: Use lp_build_alloca instead of LLVMBuildAlloca on the loop limiter. To ensure that the alloca is at the top of the function body, otherwise LLVM will not eliminate them, causing stack misalignment on 32bits. Reviewed-by: James Benton diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 8cfcf5d..cca7ef5 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -79,10 +79,7 @@ static void lp_exec_mask_init(struct lp_exec_mask *mask, struct lp_build_context mask->exec_mask = mask->ret_mask = mask->break_mask = mask->cont_mask = mask->cond_mask = LLVMConstAllOnes(mask->int_vec_type); - mask->loop_limiter = LLVMBuildAlloca( - builder, - int_type, - "looplimiter"); + mask->loop_limiter = lp_build_alloca(bld->gallivm, int_type, "looplimiter"); LLVMBuildStore( builder,