April 5, 2016, 09:37 (GMT) |
With the proper formal function parameters for node functions they can now actually be called. |
April 5, 2016, 09:30 (GMT) |
Use getFunctionAddress instead of deprecated getFunctionPointer. |
April 5, 2016, 09:04 (GMT) |
Retain functions both for storage in the cache as well as keeping the pointer during eval. Otherwise the function is freed immediately after each use, making the cache pointless. |
April 5, 2016, 08:26 (GMT) |
Only insert functions into the function cache when use_cache argument is true. |
April 5, 2016, 08:16 (GMT) |
Type generation for LLVM based on node socket types. Currently every socket stores a complete and unique type definition. This should be changed to module-level type declarations and referencing by name. |
April 5, 2016, 07:17 (GMT) |
Implement bvm internal function caching and spin lock (missing from previous commit). |
April 4, 2016, 17:28 (GMT) |
Use function caching in the same way for BVM as for LLVM. The previous way of acquiring functions from the cache was actually not threadsafe. To do this efficiently the cache locking, lookup and potential update is now done inside the API functions to prevent race conditions on the cache. |
April 4, 2016, 15:34 (GMT) |
Experimental (and very messy) code for JIT compiling and running a simple stub function for texnodes on the LLVM backend. |
April 1, 2016, 08:22 (GMT) |
Use a _bvm postfix to distinguish the "gen_XXX_function" and "eval" API methods by backend. |
April 1, 2016, 07:23 (GMT) |
Generalization of the function cache feature to support both bvm and llvm backends. This code is not very elegant atm, but it does the job. Have to see how internal code management of LLVM (modules) plays into this, the function cache then could become redundant. |
March 31, 2016, 14:39 (GMT) |
Partial revert: Use only BVMFunction stub type as a handle for all backends. API functions are still distinguished by backend. |
March 31, 2016, 14:35 (GMT) |
Use the BVM postfix to distinguish 'Function' in bvm backend from future LLVM functions. |
March 31, 2016, 14:14 (GMT) |
Fix incorrect stub type name for texnodes. |
March 31, 2016, 11:00 (GMT) |
Added llvm_engine files for managing global LLVM initialization and ExecutionEngine. |
March 30, 2016, 15:08 (GMT) |
Rename BVMFunction to BVMFunctionBVM in the C API. The awkward double shorthand "BVM" has two meanings here: * BVM*** is short prefix for "BlenVM" (to be changed later?). * ***FunctionBVM means a function in the bvm backend implementation (see FunctionLLVM etc.) This should be cleaned up later, by chosing a more sensible name for the overall code module. |
March 30, 2016, 14:41 (GMT) |
Cleanup: replace namespace bvm with namespace blenvm in comments. |
March 30, 2016, 14:22 (GMT) |
Own file for function cache API. |
March 30, 2016, 13:07 (GMT) |
Moved the modules directory to the blenvm base level, so modules can be shared code. The idea is to use modules code for all the various backends to avoid lots of duplicate code. This is similar to how the same code is used in Cycles for CPU and CUDA backends. |
March 30, 2016, 11:48 (GMT) |
Added blenvm_llvm submodule for implementing the LLVM backend to the blenvm node system. |
March 30, 2016, 10:10 (GMT) |
Support LLVM header includes. These were not needed by Blender yet, because LLVM is only used indirectly through dependencies, which use their own build settings for LLVM include paths. |
|