[Bf-blender-cvs] [dc2979a9427] functions: cleanup LLVMBool type info

Jacques Lucke noreply at git.blender.org
Tue Apr 30 13:59:16 CEST 2019


Commit: dc2979a942702e6b9fab6aeb8302a079a9e7f565
Author: Jacques Lucke
Date:   Tue Apr 30 12:42:26 2019 +0200
Branches: functions
https://developer.blender.org/rBdc2979a942702e6b9fab6aeb8302a079a9e7f565

cleanup LLVMBool type info

===================================================================

M	source/blender/functions/backends/llvm/llvm_types.cpp
M	source/blender/functions/backends/llvm/llvm_types.hpp
M	source/blender/functions/types/boolean.cpp

===================================================================

diff --git a/source/blender/functions/backends/llvm/llvm_types.cpp b/source/blender/functions/backends/llvm/llvm_types.cpp
index 814b4f1852c..e825b4cbbb0 100644
--- a/source/blender/functions/backends/llvm/llvm_types.cpp
+++ b/source/blender/functions/backends/llvm/llvm_types.cpp
@@ -12,11 +12,6 @@ LLVMTypeInfo::~LLVMTypeInfo()
 
 /******************** TrivialLLVMTypeInfo ********************/
 
-llvm::Type *TrivialLLVMTypeInfo::get_type(llvm::LLVMContext &context) const
-{
-  return m_create_func(context);
-}
-
 llvm::Value *TrivialLLVMTypeInfo::build_copy_ir(CodeBuilder &UNUSED(builder),
                                                 llvm::Value *value) const
 {
@@ -44,6 +39,11 @@ void TrivialLLVMTypeInfo::build_store_ir__relocate(CodeBuilder &builder,
 
 /******************** SimpleLLVMTypeInfo ********************/
 
+llvm::Type *SimpleLLVMTypeInfo::get_type(llvm::LLVMContext &context) const
+{
+  return m_create_func(context);
+}
+
 void SimpleLLVMTypeInfo::build_store_ir__copy(CodeBuilder &builder,
                                               llvm::Value *value,
                                               llvm::Value *address) const
diff --git a/source/blender/functions/backends/llvm/llvm_types.hpp b/source/blender/functions/backends/llvm/llvm_types.hpp
index 5d5b0f2ed61..9bd58291048 100644
--- a/source/blender/functions/backends/llvm/llvm_types.hpp
+++ b/source/blender/functions/backends/llvm/llvm_types.hpp
@@ -30,16 +30,7 @@ class LLVMTypeInfo : public TypeExtension {
 };
 
 class TrivialLLVMTypeInfo : public LLVMTypeInfo {
- protected:
-  typedef std::function<llvm::Type *(llvm::LLVMContext &context)> CreateFunc;
-  CreateFunc m_create_func;
-
  public:
-  TrivialLLVMTypeInfo(CreateFunc create_func) : m_create_func(create_func)
-  {
-  }
-
-  llvm::Type *get_type(llvm::LLVMContext &context) const override;
   llvm::Value *build_copy_ir(CodeBuilder &builder, llvm::Value *value) const override;
   void build_free_ir(CodeBuilder &builder, llvm::Value *value) const override;
   void build_store_ir__relocate(CodeBuilder &builder,
@@ -49,11 +40,16 @@ class TrivialLLVMTypeInfo : public LLVMTypeInfo {
 };
 
 class SimpleLLVMTypeInfo : public TrivialLLVMTypeInfo {
+ private:
+  typedef std::function<llvm::Type *(llvm::LLVMContext &context)> CreateFunc;
+  CreateFunc m_create_func;
+
  public:
-  SimpleLLVMTypeInfo(CreateFunc create_func) : TrivialLLVMTypeInfo(create_func)
+  SimpleLLVMTypeInfo(CreateFunc create_func) : m_create_func(create_func)
   {
   }
 
+  llvm::Type *get_type(llvm::LLVMContext &context) const override;
   llvm::Value *build_load_ir__copy(CodeBuilder &builder, llvm::Value *address) const override;
   void build_store_ir__copy(CodeBuilder &builder,
                             llvm::Value *value,
diff --git a/source/blender/functions/types/boolean.cpp b/source/blender/functions/types/boolean.cpp
index 43b2e2d115b..377b4c1a34b 100644
--- a/source/blender/functions/types/boolean.cpp
+++ b/source/blender/functions/types/boolean.cpp
@@ -8,23 +8,13 @@
 namespace FN {
 namespace Types {
 
-class LLVMBool : public LLVMTypeInfo {
+class LLVMBool : public TrivialLLVMTypeInfo {
 
   llvm::Type *get_type(llvm::LLVMContext &context) const override
   {
     return llvm::Type::getInt1Ty(context);
   }
 
-  llvm::Value *build_copy_ir(CodeBuilder &UNUSED(builder), llvm::Value *value) const override
-  {
-    return value;
-  }
-
-  void build_free_ir(CodeBuilder &UNUSED(builder), llvm::Value *UNUSED(value)) const override
-  {
-    return;
-  }
-
   void build_store_ir__copy(CodeBuilder &builder,
                             llvm::Value *value,
                             llvm::Value *byte_addr) const override
@@ -33,24 +23,12 @@ class LLVMBool : public LLVMTypeInfo {
     builder.CreateStore(byte_value, byte_addr);
   }
 
-  void build_store_ir__relocate(CodeBuilder &builder,
-                                llvm::Value *value,
-                                llvm::Value *byte_addr) const override
-  {
-    this->build_store_ir__copy(builder, value, byte_addr);
-  }
-
   llvm::Value *build_load_ir__copy(CodeBuilder &builder, llvm::Value *byte_addr) const override
   {
     llvm::Value *byte_value = builder.CreateLoad(byte_addr);
     llvm::Value *value = builder.CreateCastIntTo1(byte_value);
     return value;
   }
-
-  llvm::Value *build_load_ir__relocate(CodeBuilder &builder, llvm::Value *byte_addr) const override
-  {
-    return this->build_load_ir__copy(builder, byte_addr);
-  }
 };
 
 LAZY_INIT_REF__NO_ARG(SharedType, GET_TYPE_bool)



More information about the Bf-blender-cvs mailing list