Commit: c090a2f821fdae5e7b5b783078be563655c6558c
Author: Jacques Lucke
Date:   Sun Mar 3 11:07:39 2019 +0100
Branches: functions
https://developer.blender.org/rBc090a2f821fdae5e7b5b783078be563655c6558c

cleanup

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

M       source/blender/functions/backends/llvm/to_tuple_call.cpp
M       source/blender/functions/backends/llvm/to_tuple_call.hpp
M       source/blender/functions/c_wrapper.cpp
M       source/blender/functions/core/function.hpp

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

diff --git a/source/blender/functions/backends/llvm/to_tuple_call.cpp 
b/source/blender/functions/backends/llvm/to_tuple_call.cpp
index ddb755750e5..53d4ff93d79 100644
--- a/source/blender/functions/backends/llvm/to_tuple_call.cpp
+++ b/source/blender/functions/backends/llvm/to_tuple_call.cpp
@@ -38,7 +38,8 @@ namespace FN {
        }
 
        static llvm::Function *insert_tuple_call_function(
-               SharedFunction fn,
+               Function *fn,
+               LLVMGenBody *llvm_body,
                llvm::Module *module)
        {
                llvm::LLVMContext &context = module->getContext();
@@ -86,9 +87,7 @@ namespace FN {
                }
 
                LLVMValues output_values;
-               auto body = fn->body<LLVMGenBody>();
-               BLI_assert(body);
-               body->build_ir(builder, input_values, output_values);
+               llvm_body->build_ir(builder, input_values, output_values);
 
                for (uint i = 0; i < output_values.size(); i++) {
                        llvm::Value *value_byte_addr = lookup_tuple_address(
@@ -134,11 +133,13 @@ namespace FN {
        };
 
        TupleCallBody *compile_llvm_to_tuple_call(
-               SharedFunction &fn,
+               LLVMGenBody *llvm_body,
                llvm::LLVMContext &context)
        {
+               BLI_assert(llvm_body->has_owner());
+               Function *fn = llvm_body->owner();
                llvm::Module *module = new llvm::Module(fn->name(), context);
-               llvm::Function *function = insert_tuple_call_function(fn, 
module);
+               llvm::Function *function = insert_tuple_call_function(fn, 
llvm_body, module);
 
                // module->print(llvm::outs(), nullptr);
 
diff --git a/source/blender/functions/backends/llvm/to_tuple_call.hpp 
b/source/blender/functions/backends/llvm/to_tuple_call.hpp
index 8adb6b393d7..89506828eef 100644
--- a/source/blender/functions/backends/llvm/to_tuple_call.hpp
+++ b/source/blender/functions/backends/llvm/to_tuple_call.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "FN_core.hpp"
+#include "llvm_gen.hpp"
 #include <llvm/IR/IRBuilder.h>
 
 namespace FN {
@@ -8,7 +8,7 @@ namespace FN {
        class TupleCallBody;
 
        TupleCallBody *compile_llvm_to_tuple_call(
-               SharedFunction &fn,
+               LLVMGenBody *llvm_body,
                llvm::LLVMContext &context);
 
 } /* namespace FN */
\ No newline at end of file
diff --git a/source/blender/functions/c_wrapper.cpp 
b/source/blender/functions/c_wrapper.cpp
index 34407dffa4e..e13146ff62f 100644
--- a/source/blender/functions/c_wrapper.cpp
+++ b/source/blender/functions/c_wrapper.cpp
@@ -25,7 +25,7 @@ static void playground()
 {
        SharedFunction fn = Functions::add_floats();
        llvm::LLVMContext *context = new llvm::LLVMContext();
-       auto body = compile_llvm_to_tuple_call(fn, *context);
+       auto body = compile_llvm_to_tuple_call(fn->body<LLVMGenBody>(), 
*context);
 
        Tuple fn_in(fn->signature().input_types());
        Tuple fn_out(fn->signature().output_types());
diff --git a/source/blender/functions/core/function.hpp 
b/source/blender/functions/core/function.hpp
index b45016196d4..389ce6a51d4 100644
--- a/source/blender/functions/core/function.hpp
+++ b/source/blender/functions/core/function.hpp
@@ -50,7 +50,7 @@ namespace FN {
                }
 
                template<typename T>
-               inline const T *body() const
+               inline T *body() const
                {
                        return m_bodies.get<T>();
                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to