summaryrefslogtreecommitdiff
path: root/sc/source/core
diff options
context:
space:
mode:
authorI-Jui (Ray) Sung <ray@multicorewareinc.com>2013-11-20 08:49:27 -0600
committerI-Jui (Ray) Sung <ray@multicorewareinc.com>2013-11-20 14:47:06 -0600
commitb98edda0719e382f38e68ecd76653c5de74aa283 (patch)
tree8981097d5a005c9f504bbe2082658dd9fbc6b780 /sc/source/core
parentacc0fcd96c940e42da27bb58ba1c89ae5de5a5b8 (diff)
GPU Calc: re-enable parallel SUMIFS
Change-Id: I70797f089ead267d223772b73c4d093813716029
Diffstat (limited to 'sc/source/core')
-rw-r--r--sc/source/core/opencl/formulagroupcl.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index 5d14ddddf233..2ddff7582373 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -434,7 +434,14 @@ public:
bIsStartFixed = mpDVR->IsStartFixed();
bIsEndFixed = mpDVR->IsEndFixed();
}
-
+ // Should only be called by SumIfs. Yikes!
+ virtual bool NeedParallelReduction(void) const
+ {
+ assert(dynamic_cast<OpSumIfs*>(mpCodeGen.get()));
+ return GetWindowSize()> 100 &&
+ ( (GetStartFixed() && GetEndFixed()) ||
+ (!GetStartFixed() && !GetEndFixed()) ) ;
+ }
virtual void GenSlidingWindowFunction(std::stringstream &) {}
virtual std::string GenSlidingWindowDeclRef(bool=false) const