[Bf-blender-cvs] [6ac4a72b28c] functions: free cached vectorized functions
Jacques Lucke
noreply at git.blender.org
Tue Jun 4 18:14:50 CEST 2019
Commit: 6ac4a72b28c8d5d37239d197c9e00289525c7a29
Author: Jacques Lucke
Date: Tue Jun 4 18:05:15 2019 +0200
Branches: functions
https://developer.blender.org/rB6ac4a72b28c8d5d37239d197c9e00289525c7a29
free cached vectorized functions
===================================================================
M source/blender/functions/functions/auto_vectorization.cpp
===================================================================
diff --git a/source/blender/functions/functions/auto_vectorization.cpp b/source/blender/functions/functions/auto_vectorization.cpp
index 0daa1976989..f06a469c870 100644
--- a/source/blender/functions/functions/auto_vectorization.cpp
+++ b/source/blender/functions/functions/auto_vectorization.cpp
@@ -5,6 +5,8 @@
#include "FN_tuple_call.hpp"
#include "FN_llvm.hpp"
+#include "BLI_lazy_init.hpp"
+
namespace FN {
namespace Functions {
@@ -478,12 +480,19 @@ struct AutoVectorizationInput {
}
};
+using VectorizeCacheMap = SmallMap<AutoVectorizationInput, SharedFunction>;
+
+LAZY_INIT_REF_STATIC__NO_ARG(VectorizeCacheMap, get_vectorized_function_cache)
+{
+ return VectorizeCacheMap{};
+}
+
SharedFunction to_vectorized_function__with_cache(
SharedFunction &original_fn,
ArrayRef<bool> vectorized_inputs_mask,
ArrayRef<SharedFunction> empty_list_value_builders)
{
- static SmallMap<AutoVectorizationInput, SharedFunction> cache;
+ static VectorizeCacheMap &cache = get_vectorized_function_cache();
AutoVectorizationInput cache_key(original_fn, vectorized_inputs_mask, empty_list_value_builders);
return cache.lookup_ref_or_insert_func(cache_key,
More information about the Bf-blender-cvs
mailing list