[Bf-blender-cvs] [f4ec5b0c53d] nodes_playground: cleanup
Jacques Lucke
noreply at git.blender.org
Sun Jan 6 17:25:55 CET 2019
Commit: f4ec5b0c53d563e28668f717658ecbc8f32e0128
Author: Jacques Lucke
Date: Sun Jan 6 17:24:49 2019 +0100
Branches: nodes_playground
https://developer.blender.org/rBf4ec5b0c53d563e28668f717658ecbc8f32e0128
cleanup
===================================================================
M source/blender/modifiers/intern/node_compiler.cpp
M source/blender/modifiers/intern/node_compiler.hpp
M source/blender/modifiers/intern/node_compiler_testing.cpp
===================================================================
diff --git a/source/blender/modifiers/intern/node_compiler.cpp b/source/blender/modifiers/intern/node_compiler.cpp
index 37efefe839c..8f837f980a0 100644
--- a/source/blender/modifiers/intern/node_compiler.cpp
+++ b/source/blender/modifiers/intern/node_compiler.cpp
@@ -113,9 +113,12 @@ llvm::CallInst *callPointer(
llvm::Value *voidPtrToIR(llvm::IRBuilder<> &builder, void *pointer)
{
- return builder.CreateIntToPtr(
- builder.getInt64((size_t)pointer),
- getVoidPtrTy(builder));
+ return ptrToIR(builder, pointer, getVoidPtrTy(builder));
+}
+
+llvm::Value *ptrToIR(llvm::IRBuilder<> &builder, void *pointer, llvm::Type *type)
+{
+ return builder.CreateIntToPtr(builder.getInt64((size_t)pointer), type);
}
llvm::Type *getVoidPtrTy(llvm::IRBuilder<> &builder)
@@ -273,7 +276,7 @@ void DataFlowGraph::generateCodeForSocket(
}
std::vector<llvm::Value *> output_values;
- node->buildLLVMIR(builder, input_values, output_values);
+ node->buildIR(builder, input_values, output_values);
for (uint i = 0; i < node->outputs().size(); i++) {
values.add(node->Output(i), output_values[i]);
diff --git a/source/blender/modifiers/intern/node_compiler.hpp b/source/blender/modifiers/intern/node_compiler.hpp
index cdcf994b906..3ffde819d66 100644
--- a/source/blender/modifiers/intern/node_compiler.hpp
+++ b/source/blender/modifiers/intern/node_compiler.hpp
@@ -28,6 +28,7 @@ llvm::CallInst *callPointer(
void *pointer, llvm::FunctionType *type, llvm::ArrayRef<llvm::Value *> arguments);
llvm::Value *voidPtrToIR(llvm::IRBuilder<> &builder, void *pointer);
+llvm::Value *ptrToIR(llvm::IRBuilder<> &builder, void *pointer, llvm::Type *type);
llvm::Type *getVoidPtrTy(llvm::IRBuilder<> &builder);
llvm::Type *getVoidPtrTy(llvm::LLVMContext &context);
@@ -176,7 +177,7 @@ public:
virtual std::string debug_id() const;
- virtual void buildLLVMIR(
+ virtual void buildIR(
llvm::IRBuilder<> &builder,
std::vector<llvm::Value *> &inputs,
std::vector<llvm::Value *> &r_outputs) = 0;
@@ -193,7 +194,7 @@ protected:
bool use_this = false;
public:
- void buildLLVMIR(
+ void buildIR(
llvm::IRBuilder<> &builder,
std::vector<llvm::Value *> &inputs,
std::vector<llvm::Value *> &r_outputs)
diff --git a/source/blender/modifiers/intern/node_compiler_testing.cpp b/source/blender/modifiers/intern/node_compiler_testing.cpp
index 4995303243c..1d89831993f 100644
--- a/source/blender/modifiers/intern/node_compiler_testing.cpp
+++ b/source/blender/modifiers/intern/node_compiler_testing.cpp
@@ -8,9 +8,6 @@ extern "C" {
namespace NC = LLVMNodeCompiler;
class IntegerType : public NC::Type {
-private:
- uint bits;
-
public:
IntegerType(uint bits)
: bits(bits) {}
@@ -19,6 +16,9 @@ public:
{
return llvm::Type::getIntNTy(context, this->bits);
}
+
+private:
+ uint bits;
};
struct MyTypeStruct {
@@ -43,8 +43,6 @@ auto *type_custom = new MyType();
class MyTypeInputNode : public NC::ExecuteFunctionNode {
-private:
- MyTypeStruct data;
public:
MyTypeInputNode(int a, int b, int c)
{
@@ -52,15 +50,17 @@ public:
this->data.b = b;
this->data.c = c;
this->m_outputs.add("Value", type_custom);
- this->execute_function = (void *)my_type_input;
+ this->execute_function = (void *)execute;
this->use_this = true;
}
private:
- static void my_type_input(MyTypeInputNode *node, void **r_value)
+ static void execute(MyTypeInputNode *node, void **r_value)
{
*r_value = new MyTypeStruct(node->data);
}
+
+ MyTypeStruct data;
};
class MyTypePrintNode : public NC::ExecuteFunctionNode {
@@ -70,11 +70,11 @@ public:
this->m_inputs.add("A", type_custom);
this->m_inputs.add("B", type_custom);
this->m_outputs.add("Output", type_int32);
- this->execute_function = (void *)my_type_print;
+ this->execute_function = (void *)execute;
}
private:
- static void my_type_print(MyTypeStruct *a, MyTypeStruct *b, int *r_value)
+ static void execute(MyTypeStruct *a, MyTypeStruct *b, int *r_value)
{
std::cout << "A: " << a->a << " " << a->b << " " << a->c << std::endl;
std::cout << "B: " << b->a << " " << b->b << " " << b->c << std::endl;
@@ -91,11 +91,11 @@ public:
{
this->m_inputs.add("In", type_custom);
this->m_outputs.add("Out", type_custom);
- this->execute_function = (void *)modify_my_type;
+ this->execute_function = (void *)execute;
}
private:
- static void modify_my_type(MyTypeStruct *data, MyTypeStruct **r_data)
+ static void execute(MyTypeStruct *data, MyTypeStruct **r_data)
{
data->a = 200;
*r_data = data;
@@ -104,9 +104,6 @@ private:
class IntInputNode : public NC::Node {
-private:
- int number;
-
public:
IntInputNode(int number)
: number(number)
@@ -114,19 +111,19 @@ public:
this->m_outputs.add("Value", type_int32);
}
- void buildLLVMIR(
+ void buildIR(
llvm::IRBuilder<> &builder,
std::vector<llvm::Value *> &UNUSED(inputs),
std::vector<llvm::Value *> &r_outputs)
{
r_outputs.push_back(builder.getInt32(this->number));
}
-};
-class IntRefInputNode : public NC::Node {
private:
- int *pointer;
+ int number;
+};
+class IntRefInputNode : public NC::Node {
public:
IntRefInputNode(int *pointer)
: pointer(pointer)
@@ -134,15 +131,17 @@ public:
this->m_outputs.add("Value", type_int32);
}
- void buildLLVMIR(
- llvm::IRBuilder<> *builder,
+ void buildIR(
+ llvm::IRBuilder<> &builder,
std::vector<llvm::Value *> &UNUSED(inputs),
std::vector<llvm::Value *> &r_outputs)
{
- auto address_int = builder->getInt64((size_t)this->pointer);
- auto address = builder->CreateIntToPtr(address_int, llvm::Type::getInt32PtrTy(builder->getContext()));
- r_outputs.push_back(builder->CreateLoad(address));
+ auto address = NC::ptrToIR(builder, this->pointer, builder.getInt32Ty());
+ r_outputs.push_back(builder.CreateLoad(address));
}
+
+private:
+ int *pointer;
};
class AddIntegersNode : public NC::Node {
@@ -154,7 +153,7 @@ public:
this->m_outputs.add("Result", type_int32);
}
- void buildLLVMIR(
+ void buildIR(
llvm::IRBuilder<> &builder,
std::vector<llvm::Value *> &inputs,
std::vector<llvm::Value *> &r_outputs)
@@ -164,9 +163,6 @@ public:
};
class PrintIntegerNode : public NC::ExecuteFunctionNode {
-private:
- std::string prefix;
-
public:
PrintIntegerNode()
{
@@ -183,6 +179,8 @@ private:
std::cout << node->prefix << number << std::endl;
*r_number = number + 42;
}
+
+ std::string prefix;
};
More information about the Bf-blender-cvs
mailing list