sc/inc/formulacell.hxx | 4 ++++ sc/source/core/data/formulacell.cxx | 10 ++++++++-- sc/source/core/opencl/formulagroupcl.cxx | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-)
New commits: commit bb75460ad23edcf23cded63e554c611bded2dd04 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Mar 20 09:54:35 2014 -0400 Disable kernel pre-compilation for now. Change-Id: I8ba765a4d89618f301572c5fd9931f86d87af10d (cherry picked from commit 5d4f525da7f560f85c2ce18f1ca1570d3cc53a50) (cherry picked from commit e0d936ef7b7fd6b57cdd5ccadddcbd84bd4bb359) Reviewed-on: https://gerrit.libreoffice.org/8680 Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index 8548867..2d696c3 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -34,6 +34,8 @@ #include "formularesult.hxx" +#define ENABLE_THREADED_OPENCL_KERNEL_COMPILATION 0 + namespace sc { class CLBuildKernelThread; @@ -78,8 +80,10 @@ struct SC_DLLPUBLIC ScFormulaCellGroup : boost::noncopyable ScDocument& rDoc, const ScAddress& rPos, formula::FormulaGrammar::Grammar eGram ); void compileOpenCLKernel(); +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION static int snCount; static rtl::Reference<sc::CLBuildKernelThread> sxCompilationThread; +#endif }; inline void intrusive_ptr_add_ref(const ScFormulaCellGroup *p) diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 395adfd..eb40441 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -55,8 +55,6 @@ #include <boost/scoped_ptr.hpp> -#define ENABLE_THREADED_OPENCL_KERNEL_COMPILATION 1 - using namespace formula; #ifdef USE_MEMPOOL @@ -388,6 +386,7 @@ void adjustDBRange(ScToken* pToken, ScDocument& rNewDoc, const ScDocument* pOldD } +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION // The mutex to synchronize access to the OpenCL compilation thread. static osl::Mutex& getOpenCLCompilationThreadMutex() { @@ -407,6 +406,7 @@ static osl::Mutex& getOpenCLCompilationThreadMutex() int ScFormulaCellGroup::snCount = 0; rtl::Reference<sc::CLBuildKernelThread> ScFormulaCellGroup::sxCompilationThread; +#endif ScFormulaCellGroup::ScFormulaCellGroup() : mnRefCount(0), @@ -420,6 +420,7 @@ ScFormulaCellGroup::ScFormulaCellGroup() : meCalcState(sc::GroupCalcEnabled), meKernelState(sc::OpenCLKernelNone) { +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION if (ScInterpreter::GetGlobalConfig().mbOpenCLEnabled) { osl::MutexGuard aGuard(getOpenCLCompilationThreadMutex()); @@ -430,10 +431,12 @@ ScFormulaCellGroup::ScFormulaCellGroup() : sxCompilationThread->launch(); } } +#endif } ScFormulaCellGroup::~ScFormulaCellGroup() { +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION if (ScInterpreter::GetGlobalConfig().mbOpenCLEnabled) { osl::MutexGuard aGuard(getOpenCLCompilationThreadMutex()); @@ -446,17 +449,20 @@ ScFormulaCellGroup::~ScFormulaCellGroup() sxCompilationThread.clear(); } } +#endif delete mpCode; delete mpCompiledFormula; } void ScFormulaCellGroup::scheduleCompilation() { +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION meKernelState = sc::OpenCLKernelCompilationScheduled; sc::CLBuildKernelWorkItem aWorkItem; aWorkItem.meWhatToDo = sc::CLBuildKernelWorkItem::COMPILE; aWorkItem.mxGroup = this; sxCompilationThread->push(aWorkItem); +#endif } void ScFormulaCellGroup::setCode( const ScTokenArray& rCode ) diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index 0f6fb22..ec5c4bf 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -3426,6 +3426,7 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, DynamicKernel *pKernel = NULL; boost::scoped_ptr<DynamicKernel> pLocalKernel; +#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION if (xGroup->meKernelState == sc::OpenCLKernelCompilationScheduled || xGroup->meKernelState == sc::OpenCLKernelBinaryCreated) { @@ -3443,6 +3444,10 @@ bool FormulaGroupInterpreterOpenCL::interpret( ScDocument& rDoc, pKernel = static_cast<DynamicKernel*>(createCompiledFormula(rDoc, rTopPos, *xGroup, rCode)); pLocalKernel.reset(pKernel); // to be deleted when done. } +#else + pKernel = static_cast<DynamicKernel*>(createCompiledFormula(rDoc, rTopPos, *xGroup, rCode)); + pLocalKernel.reset(pKernel); // to be deleted when done. +#endif if (!pKernel) return false; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits