[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