ac: simplify LLVM alloca helpers

This commit is contained in:
Marek Olšák 2018-09-21 03:27:06 -04:00
parent a668c8d6ba
commit 82f5f89bf6

View file

@ -2747,7 +2747,7 @@ void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
if_cond_emit(ctx, cond, label_id); if_cond_emit(ctx, cond, label_id);
} }
LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac, LLVMTypeRef type, LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
const char *name) const char *name)
{ {
LLVMBuilderRef builder = ac->builder; LLVMBuilderRef builder = ac->builder;
@ -2765,18 +2765,15 @@ LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac, LLVMTypeRef type,
} }
res = LLVMBuildAlloca(first_builder, type, name); res = LLVMBuildAlloca(first_builder, type, name);
LLVMBuildStore(builder, LLVMConstNull(type), res);
LLVMDisposeBuilder(first_builder); LLVMDisposeBuilder(first_builder);
return res; return res;
} }
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac,
LLVMTypeRef type, const char *name) LLVMTypeRef type, const char *name)
{ {
LLVMValueRef ptr = ac_build_alloca(ac, type, name); LLVMValueRef ptr = ac_build_alloca_undef(ac, type, name);
LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr); LLVMBuildStore(ac->builder, LLVMConstNull(type), ptr);
return ptr; return ptr;
} }