[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