Commit 21a6bf86 authored by Jose Fonseca's avatar Jose Fonseca

llvmpipe: Store often used LLVM types in the lp_build_context.

parent baf43931
......@@ -372,7 +372,23 @@ lp_build_context_init(struct lp_build_context *bld,
{
bld->builder = builder;
bld->type = type;
bld->undef = lp_build_undef(type);
bld->zero = lp_build_zero(type);
bld->int_elem_type = lp_build_int_elem_type(type);
if (type.floating)
bld->elem_type = lp_build_elem_type(type);
else
bld->elem_type = bld->int_elem_type;
if (type.length == 1) {
bld->int_vec_type = bld->int_elem_type;
bld->vec_type = bld->elem_type;
}
else {
bld->int_vec_type = LLVMVectorType(bld->int_elem_type, type.length);
bld->vec_type = LLVMVectorType(bld->elem_type, type.length);
}
bld->undef = LLVMGetUndef(bld->vec_type);
bld->zero = LLVMConstNull(bld->vec_type);
bld->one = lp_build_one(type);
}
......@@ -128,6 +128,18 @@ struct lp_build_context
*/
struct lp_type type;
/** Same as lp_build_undef(type) */
LLVMTypeRef elem_type;
/** Same as lp_build_undef(type) */
LLVMTypeRef vec_type;
/** Same as lp_build_undef(type) */
LLVMTypeRef int_elem_type;
/** Same as lp_build_undef(type) */
LLVMTypeRef int_vec_type;
/** Same as lp_build_undef(type) */
LLVMValueRef undef;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment