Commit: 3dae50bc4cb61aca74718184a1e6c9970c637120
Author: Lukas Tönne
Date:   Tue May 24 12:07:31 2016 +0200
Branches: object_nodes
https://developer.blender.org/rB3dae50bc4cb61aca74718184a1e6c9970c637120

Cleanup: Remove the unnecessary compiler subclasses for final instantiation.

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

M       source/blender/blenvm/intern/bvm_api.cc
M       source/blender/blenvm/llvm/llvm_compiler.cc
M       source/blender/blenvm/llvm/llvm_compiler.h
M       source/blender/blenvm/llvm/llvm_compiler_dual.cc

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

diff --git a/source/blender/blenvm/intern/bvm_api.cc 
b/source/blender/blenvm/intern/bvm_api.cc
index 5e83d62..d51df61 100644
--- a/source/blender/blenvm/intern/bvm_api.cc
+++ b/source/blender/blenvm/intern/bvm_api.cc
@@ -420,15 +420,15 @@ static void debug_node_graph(blenvm::NodeGraph &graph, 
FILE *debug_file, const c
                }
                case BVM_DEBUG_LLVM_CODE: {
 #ifdef WITH_LLVM
-                       DebugLLVMCompiler compiler;
-                       compiler.compile_function(label, graph, 2, debug_file);
+                       LLVMTextureCompiler compiler;
+                       compiler.debug_function(label, graph, 2, debug_file);
 #endif
                        break;
                }
                case BVM_DEBUG_LLVM_CODE_UNOPTIMIZED: {
 #ifdef WITH_LLVM
-                       DebugLLVMCompiler compiler;
-                       compiler.compile_function(label, graph, 0, debug_file);
+                       LLVMTextureCompiler compiler;
+                       compiler.debug_function(label, graph, 0, debug_file);
 #endif
                        break;
                }
@@ -596,7 +596,7 @@ struct BVMFunction *BVM_gen_texture_function_llvm(bNodeTree 
*btree, bool use_cac
                parse_py_nodes(btree, &graph);
                graph.finalize();
                
-               LLVMCompiler compiler;
+               LLVMTextureCompiler compiler;
                fn = 
compiler.compile_function(get_ntree_unique_function_name(btree), graph, 2);
                
                if (use_cache) {
diff --git a/source/blender/blenvm/llvm/llvm_compiler.cc 
b/source/blender/blenvm/llvm/llvm_compiler.cc
index deaafc2..cc015ea 100644
--- a/source/blender/blenvm/llvm/llvm_compiler.cc
+++ b/source/blender/blenvm/llvm/llvm_compiler.cc
@@ -427,7 +427,7 @@ llvm::Function 
*LLVMCompilerBase::declare_node_function(llvm::Module *mod, const
 
 /* ------------------------------------------------------------------------- */
 
-FunctionLLVM *LLVMCompiler::compile_function(const string &name, const 
NodeGraph &graph, int opt_level)
+FunctionLLVM *LLVMCompilerBase::compile_function(const string &name, const 
NodeGraph &graph, int opt_level)
 {
        using namespace llvm;
        
@@ -493,7 +493,7 @@ class debug_assembly_annotation_writer : public 
llvm::AssemblyAnnotationWriter
        /* add implementation here if needed */
 };
 
-void DebugLLVMCompiler::compile_function(const string &name, const NodeGraph 
&graph, int opt_level, FILE *file)
+void LLVMCompilerBase::debug_function(const string &name, const NodeGraph 
&graph, int opt_level, FILE *file)
 {
        using namespace llvm;
        
diff --git a/source/blender/blenvm/llvm/llvm_compiler.h 
b/source/blender/blenvm/llvm/llvm_compiler.h
index 813c60c..4579095 100644
--- a/source/blender/blenvm/llvm/llvm_compiler.h
+++ b/source/blender/blenvm/llvm/llvm_compiler.h
@@ -69,6 +69,9 @@ struct LLVMCompilerBase {
        
        virtual ~LLVMCompilerBase();
        
+       FunctionLLVM *compile_function(const string &name, const NodeGraph 
&graph, int opt_level);
+       void debug_function(const string &name, const NodeGraph &graph, int 
opt_level, FILE *file);
+       
        /* XXX TODO some methods are used by static template functions, which 
require public access ... */
 //protected:
        LLVMCompilerBase();
@@ -125,7 +128,7 @@ private:
        static llvm::Module *m_nodes_module;
 };
 
-struct LLVMTextureCompilerImpl : public LLVMCompilerBase {
+struct LLVMTextureCompiler : public LLVMCompilerBase {
        llvm::Type *get_value_type(const TypeSpec *spec, bool is_constant);
        llvm::Function *declare_elementary_node_function(llvm::Module *mod, 
const NodeType *nodetype, const string &name);
        
@@ -146,14 +149,6 @@ private:
        static llvm::Module *m_nodes_module;
 };
 
-struct LLVMCompiler : public LLVMTextureCompilerImpl {
-       FunctionLLVM *compile_function(const string &name, const NodeGraph 
&graph, int opt_level);
-};
-
-struct DebugLLVMCompiler : public LLVMTextureCompilerImpl {
-       void compile_function(const string &name, const NodeGraph &graph, int 
opt_level, FILE *file);
-};
-
 } /* namespace blenvm */
 
 #endif /* __LLVM_COMPILER_H__ */
diff --git a/source/blender/blenvm/llvm/llvm_compiler_dual.cc 
b/source/blender/blenvm/llvm/llvm_compiler_dual.cc
index e6a2ad9..91ebb0e 100644
--- a/source/blender/blenvm/llvm/llvm_compiler_dual.cc
+++ b/source/blender/blenvm/llvm/llvm_compiler_dual.cc
@@ -48,14 +48,14 @@
 
 namespace blenvm {
 
-llvm::Module *LLVMTextureCompilerImpl::m_nodes_module = NULL;
+llvm::Module *LLVMTextureCompiler::m_nodes_module = NULL;
 
-llvm::Type *LLVMTextureCompilerImpl::get_value_type(const TypeSpec *spec, bool 
is_constant)
+llvm::Type *LLVMTextureCompiler::get_value_type(const TypeSpec *spec, bool 
is_constant)
 {
        return bvm_get_llvm_type(context(), spec, !is_constant);
 }
 
-bool LLVMTextureCompilerImpl::use_argument_pointer(const TypeSpec *typespec, 
bool is_constant)
+bool LLVMTextureCompiler::use_argument_pointer(const TypeSpec *typespec, bool 
is_constant)
 {
        using namespace llvm;
        
@@ -90,7 +90,7 @@ bool LLVMTextureCompilerImpl::use_argument_pointer(const 
TypeSpec *typespec, boo
        return false;
 }
 
-bool LLVMTextureCompilerImpl::use_elementary_argument_pointer(const TypeSpec 
*typespec)
+bool LLVMTextureCompiler::use_elementary_argument_pointer(const TypeSpec 
*typespec)
 {
        using namespace llvm;
        
@@ -122,12 +122,12 @@ bool 
LLVMTextureCompilerImpl::use_elementary_argument_pointer(const TypeSpec *ty
        return false;
 }
 
-llvm::Constant *LLVMTextureCompilerImpl::create_node_value_constant(const 
NodeValue *node_value)
+llvm::Constant *LLVMTextureCompiler::create_node_value_constant(const 
NodeValue *node_value)
 {
        return bvm_create_llvm_constant(context(), node_value);
 }
 
-llvm::Function 
*LLVMTextureCompilerImpl::declare_elementary_node_function(llvm::Module *mod, 
const NodeType *nodetype, const string &name)
+llvm::Function 
*LLVMTextureCompiler::declare_elementary_node_function(llvm::Module *mod, const 
NodeType *nodetype, const string &name)
 {
        using namespace llvm;
        
@@ -162,7 +162,7 @@ llvm::Function 
*LLVMTextureCompilerImpl::declare_elementary_node_function(llvm::
        return func;
 }
 
-bool LLVMTextureCompilerImpl::set_node_function_impl(OpCode op, const NodeType 
*nodetype,
+bool LLVMTextureCompiler::set_node_function_impl(OpCode op, const NodeType 
*nodetype,
                                                      llvm::Function 
*value_func,
                                                      
std::vector<llvm::Function*> deriv_funcs)
 {
@@ -217,7 +217,7 @@ bool LLVMTextureCompilerImpl::set_node_function_impl(OpCode 
op, const NodeType *
 }
 
 template <OpCode op>
-static void define_elementary_functions(LLVMTextureCompilerImpl &C, 
llvm::Module *mod, const string &nodetype_name)
+static void define_elementary_functions(LLVMTextureCompiler &C, llvm::Module 
*mod, const string &nodetype_name)
 {
        using namespace llvm;
        
@@ -240,7 +240,7 @@ static void 
define_elementary_functions(LLVMTextureCompilerImpl &C, llvm::Module
        C.set_node_function_impl(op, nodetype, value_func, deriv_funcs);
 }
 
-void LLVMTextureCompilerImpl::define_dual_function_wrapper(llvm::Module *mod, 
const string &nodetype_name)
+void LLVMTextureCompiler::define_dual_function_wrapper(llvm::Module *mod, 
const string &nodetype_name)
 {
        using namespace llvm;
        
@@ -345,7 +345,7 @@ void 
LLVMTextureCompilerImpl::define_dual_function_wrapper(llvm::Module *mod, co
        builder.CreateRetVoid();
 }
 
-void LLVMTextureCompilerImpl::define_nodes_module()
+void LLVMTextureCompiler::define_nodes_module()
 {
        using namespace llvm;

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

Reply via email to