[Bf-blender-cvs] [4cd87928829] functions: cleanup code builder interface
Jacques Lucke
noreply at git.blender.org
Fri May 3 12:43:38 CEST 2019
Commit: 4cd879288290eb8ebdf170a32ad1af0f7d71803d
Author: Jacques Lucke
Date: Fri May 3 12:16:00 2019 +0200
Branches: functions
https://developer.blender.org/rB4cd879288290eb8ebdf170a32ad1af0f7d71803d
cleanup code builder interface
===================================================================
M source/blender/functions/backends/llvm/builder.cpp
M source/blender/functions/backends/llvm/builder.hpp
M source/blender/functions/backends/llvm/fgraph_ir_generation.cpp
M source/blender/functions/backends/llvm/ir_for_tuple_call.cpp
M source/blender/functions/backends/llvm/llvm_types.cpp
M source/blender/functions/functions/auto_vectorization.cpp
===================================================================
diff --git a/source/blender/functions/backends/llvm/builder.cpp b/source/blender/functions/backends/llvm/builder.cpp
index d69d2f12003..106134fb826 100644
--- a/source/blender/functions/backends/llvm/builder.cpp
+++ b/source/blender/functions/backends/llvm/builder.cpp
@@ -87,26 +87,6 @@ llvm::Value *CodeBuilder::CreateCallPointer(void *func_ptr,
return this->CreateCallPointer(func_ptr, LLVMValuesRef(args), return_type);
}
-void CodeBuilder::CreateCallPointer_RetVoid(void *func_ptr, LLVMValuesRef args)
-{
- this->CreateCallPointer(func_ptr, args, this->getVoidTy());
-}
-
-void CodeBuilder::CreateCallPointer_RetVoid(void *func_ptr, const LLVMValues &args)
-{
- return this->CreateCallPointer_RetVoid(func_ptr, LLVMValuesRef(args));
-}
-
-llvm::Value *CodeBuilder::CreateCallPointer_RetVoidPtr(void *func_ptr, LLVMValuesRef args)
-{
- return this->CreateCallPointer(func_ptr, args, this->getVoidPtrTy());
-}
-
-llvm::Value *CodeBuilder::CreateCallPointer_RetVoidPtr(void *func_ptr, const LLVMValues &args)
-{
- return this->CreateCallPointer_RetVoidPtr(func_ptr, LLVMValuesRef(args));
-}
-
static void simple_print(const char *str)
{
std::cout << str << std::endl;
@@ -114,7 +94,8 @@ static void simple_print(const char *str)
void CodeBuilder::CreatePrint(const char *str)
{
- this->CreateCallPointer_RetVoid((void *)simple_print, {this->getVoidPtr((void *)str)});
+ this->CreateCallPointer(
+ (void *)simple_print, {this->getVoidPtr((void *)str)}, this->getVoidTy());
}
static void simple_print_float(float value)
@@ -125,7 +106,7 @@ static void simple_print_float(float value)
void CodeBuilder::CreatePrintFloat(llvm::Value *value)
{
BLI_assert(value->getType()->isFloatTy());
- this->CreateCallPointer_RetVoid((void *)simple_print_float, {value});
+ this->CreateCallPointer((void *)simple_print_float, {value}, this->getVoidTy());
}
} /* namespace FN */
diff --git a/source/blender/functions/backends/llvm/builder.hpp b/source/blender/functions/backends/llvm/builder.hpp
index b6829b7f2d2..ce0e58503dd 100644
--- a/source/blender/functions/backends/llvm/builder.hpp
+++ b/source/blender/functions/backends/llvm/builder.hpp
@@ -302,10 +302,6 @@ class CodeBuilder {
const LLVMValues &args);
llvm::Value *CreateCallPointer(void *func_ptr, LLVMValuesRef args, llvm::Type *return_type);
llvm::Value *CreateCallPointer(void *func_ptr, const LLVMValues &args, llvm::Type *return_type);
- void CreateCallPointer_RetVoid(void *func_ptr, LLVMValuesRef args);
- void CreateCallPointer_RetVoid(void *func_ptr, const LLVMValues &args);
- llvm::Value *CreateCallPointer_RetVoidPtr(void *func_ptr, LLVMValuesRef args);
- llvm::Value *CreateCallPointer_RetVoidPtr(void *func_ptr, const LLVMValues &args);
llvm::Value *CreateCall(llvm::Function *function, LLVMValuesRef args)
{
diff --git a/source/blender/functions/backends/llvm/fgraph_ir_generation.cpp b/source/blender/functions/backends/llvm/fgraph_ir_generation.cpp
index b732cb5f2b7..249c7b2238b 100644
--- a/source/blender/functions/backends/llvm/fgraph_ir_generation.cpp
+++ b/source/blender/functions/backends/llvm/fgraph_ir_generation.cpp
@@ -170,17 +170,18 @@ class BuildGraphIR : public LLVMBuildIRBody {
llvm::Value *node_info_frame_buf = builder.CreateAllocaBytes_VoidPtr(
sizeof(SourceInfoStackFrame));
- builder.CreateCallPointer_RetVoid(
+ builder.CreateCallPointer(
(void *)BuildGraphIR::push_source_frame_on_stack,
- {context_ptr, node_info_frame_buf, builder.getVoidPtr((void *)source_info)});
+ {context_ptr, node_info_frame_buf, builder.getVoidPtr((void *)source_info)},
+ builder.getVoidTy());
llvm::Value *function_info_frame_buf = builder.CreateAllocaBytes_VoidPtr(
sizeof(TextStackFrame));
- builder.CreateCallPointer_RetVoid(
- (void *)BuildGraphIR::push_text_frame_on_stack,
- {context_ptr,
- function_info_frame_buf,
- builder.getVoidPtr((void *)m_graph->name_ptr_of_node(node_id))});
+ builder.CreateCallPointer((void *)BuildGraphIR::push_text_frame_on_stack,
+ {context_ptr,
+ function_info_frame_buf,
+ builder.getVoidPtr((void *)m_graph->name_ptr_of_node(node_id))},
+ builder.getVoidTy());
}
void pop_stack_frames_for_node(CodeBuilder &builder, llvm::Value *context_ptr) const
@@ -188,7 +189,8 @@ class BuildGraphIR : public LLVMBuildIRBody {
BLI_assert(context_ptr);
for (uint i = 0; i < 2; i++) {
- builder.CreateCallPointer_RetVoid((void *)BuildGraphIR::pop_frame_from_stack, {context_ptr});
+ builder.CreateCallPointer(
+ (void *)BuildGraphIR::pop_frame_from_stack, {context_ptr}, builder.getVoidTy());
}
}
diff --git a/source/blender/functions/backends/llvm/ir_for_tuple_call.cpp b/source/blender/functions/backends/llvm/ir_for_tuple_call.cpp
index 02f65897dfa..796b7574cec 100644
--- a/source/blender/functions/backends/llvm/ir_for_tuple_call.cpp
+++ b/source/blender/functions/backends/llvm/ir_for_tuple_call.cpp
@@ -34,8 +34,8 @@ static llvm::Value *build__stack_allocate_ExecutionContext(CodeBuilder &builder)
llvm::Value *stack_ptr = builder.CreateAllocaBytes_VoidPtr(sizeof(ExecutionStack));
llvm::Value *ctx_ptr = builder.CreateAllocaBytes_VoidPtr(sizeof(ExecutionContext));
- builder.CreateCallPointer_RetVoid((void *)run__setup_ExecutionContext_in_buffer,
- {stack_ptr, ctx_ptr});
+ builder.CreateCallPointer(
+ (void *)run__setup_ExecutionContext_in_buffer, {stack_ptr, ctx_ptr}, builder.getVoidTy());
return ctx_ptr;
}
@@ -156,9 +156,10 @@ class TupleCallLLVM : public LLVMBuildIRBody {
}
/* Execute tuple call body. */
- builder.CreateCallPointer_RetVoid(
+ builder.CreateCallPointer(
(void *)run_TupleCallBody,
- {builder.getVoidPtr(m_tuple_call), tuple_in_data_ptr, tuple_out_data_ptr, context_ptr});
+ {builder.getVoidPtr(m_tuple_call), tuple_in_data_ptr, tuple_out_data_ptr, context_ptr},
+ builder.getVoidTy());
/* Read output values from buffer. */
llvm::Value *output = llvm::UndefValue::get(output_type);
diff --git a/source/blender/functions/backends/llvm/llvm_types.cpp b/source/blender/functions/backends/llvm/llvm_types.cpp
index 500b0f783b5..de04d34311b 100644
--- a/source/blender/functions/backends/llvm/llvm_types.cpp
+++ b/source/blender/functions/backends/llvm/llvm_types.cpp
@@ -95,8 +95,9 @@ llvm::Value *PointerLLVMTypeInfo::build_copy_ir(CodeBuilder &builder, llvm::Valu
void PointerLLVMTypeInfo::build_free_ir(CodeBuilder &builder, llvm::Value *value) const
{
- builder.CreateCallPointer_RetVoid((void *)PointerLLVMTypeInfo::free_value,
- {builder.getVoidPtr((void *)this), value});
+ builder.CreateCallPointer((void *)PointerLLVMTypeInfo::free_value,
+ {builder.getVoidPtr((void *)this), value},
+ builder.getVoidTy());
}
void PointerLLVMTypeInfo::build_store_ir__copy(CodeBuilder &builder,
diff --git a/source/blender/functions/functions/auto_vectorization.cpp b/source/blender/functions/functions/auto_vectorization.cpp
index 65017011cc4..07011bc639f 100644
--- a/source/blender/functions/functions/auto_vectorization.cpp
+++ b/source/blender/functions/functions/auto_vectorization.cpp
@@ -126,8 +126,9 @@ class AutoVectorizationGen : public LLVMBuildIRBody {
for (uint i = 0; i < m_input_info.size(); i++) {
if (m_input_info[i].is_list) {
uint stride = m_input_info[i].base_cpp_type->size_of_type();
- llvm::Value *data_ptr = builder.CreateCallPointer_RetVoidPtr(
- (void *)m_input_info[i].get_data_ptr_fn, {interface.get_input(i)});
+ llvm::Value *data_ptr = builder.CreateCallPointer((void *)m_input_info[i].get_data_ptr_fn,
+ {interface.get_input(i)},
+ builder.getVoidPtrTy());
llvm::Value *typed_data_ptr = builder.CastToPointerWithStride(data_ptr, stride);
data_pointers.append(typed_data_ptr);
}
@@ -143,10 +144,10 @@ class AutoVectorizationGen : public LLVMBuildIRBody {
for (uint i = 0; i < m_output_info.size(); i++) {
uint stride = m_output_info[i].base_cpp_type->size_of_type();
- llvm::Value *output_list = builder.CreateCallPointer_RetVoidPtr(
- (void *)m_output_info[i].get_new_list_fn, {length});
- llvm::Value *data_ptr = builder.CreateCallPointer_RetVoidPtr(
- (void *)m_output_info[i].get_data_ptr_fn, {output_list});
+ llvm::Value *output_list = builder.CreateCallPointer(
+ (void *)m_output_info[i].get_new_list_fn, {length}, builder.getVoidPtrTy());
+ llvm::Value *data_ptr = builder.CreateCallPointer(
+ (void *)m_output_info[i].get_data_ptr_fn, {output_list}, builder.getVoidPtrTy());
llvm::Value *typed_data_ptr = builder.CastToPointerWithStride(data_ptr, stride);
data_pointers.append(typed_data_ptr);
interface.set_output(i, output_list);
More information about the Bf-blender-cvs
mailing list