[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