sc/source/core/opencl/formulagroupcl.cxx | 147 ------------------------------- 1 file changed, 3 insertions(+), 144 deletions(-)
New commits: commit 58f2e4c62647ceeaffd3aa9b693d97321748d7ba Author: Tor Lillqvist <[email protected]> Date: Thu Jan 8 14:55:43 2015 +0200 Bin obsolete conditional compilation UNROLLING_FACTOR (or UNROLLING) has been defined since November 2013. No need to keep old code around inside ifdefs. We have this thing called version control. Change-Id: I1f10f205df95014f8c223bd7a8716757577eade0 diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index 0fd192f..d90cce9 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -606,55 +606,7 @@ public: { assert(mpDVR); size_t nCurWindowSize = mpDVR->GetRefRowSize(); - // original for loop -#ifndef UNROLLING_FACTOR - needBody = true; - // No need to generate a for-loop for degenerated cases - if (nCurWindowSize == 1) - { - ss << "if (gid0 <" << mpDVR->GetArrayLength(); - ss << ")\n\t{\tint i = 0;\n\t\t"; - return nCurWindowSize; - } - - ss << "for (int i = "; - if (!bIsStartFixed && bIsEndFixed) - { -#ifdef ISNAN - ss << "gid0; i < " << mpDVR->GetArrayLength(); - ss << " && i < " << nCurWindowSize << "; i++){\n\t\t"; -#else - ss << "gid0; i < " << nCurWindowSize << "; i++)\n\t\t"; -#endif - } - else if (bIsStartFixed && !bIsEndFixed) - { -#ifdef ISNAN - ss << "0; i < " << mpDVR->GetArrayLength(); - ss << " && i < gid0+" << nCurWindowSize << "; i++){\n\t\t"; -#else - ss << "0; i < gid0+" << nCurWindowSize << "; i++)\n\t\t"; -#endif - } - else if (!bIsStartFixed && !bIsEndFixed) - { -#ifdef ISNAN - ss << "0; i + gid0 < " << mpDVR->GetArrayLength(); - ss << " && i < " << nCurWindowSize << "; i++){\n\t\t"; -#else - ss << "0; i < " << nCurWindowSize << "; i++)\n\t\t"; -#endif - } - else - { - unsigned limit = - std::min(mpDVR->GetArrayLength(), nCurWindowSize); - ss << "0; i < " << limit << "; i++){\n\t\t"; - } - return nCurWindowSize; -#endif -#ifdef UNROLLING_FACTOR { if (!mpDVR->IsStartFixed() && mpDVR->IsEndFixed()) { @@ -757,7 +709,6 @@ public: return nCurWindowSize; } } -#endif } ~DynamicKernelSlidingArgument() { @@ -1472,76 +1423,7 @@ public: ss << ") {\n"; ss << " double tmp = 0.0;\n"; ss << " int gid0 = get_global_id(0);\n"; -#ifndef UNROLLING_FACTOR - ss << " int i ;\n"; - ss << " for (i = 0; i < " << nCurWindowSize << "; i++)\n"; - ss << " {\n"; - for (unsigned i = 0; i < vSubArguments.size(); i++) - { - tmpCur = vSubArguments[i]->GetFormulaToken(); - if (ocPush == tmpCur->GetOpCode()) - { - pCurDVR = static_cast<const formula::DoubleVectorRefToken*>(tmpCur); - if (!pCurDVR->IsStartFixed() && !pCurDVR->IsEndFixed()) - { - ss << " int currentCount"; - ss << i; - ss << " =i+gid0+1;\n"; - } - else - { - ss << " int currentCount"; - ss << i; - ss << " =i+1;\n"; - } - } - } - ss << " tmp += fsum("; - for (unsigned i = 0; i < vSubArguments.size(); i++) - { - if (i) - ss << "*"; -#ifdef ISNAN - if (ocPush == vSubArguments[i]->GetFormulaToken()->GetOpCode()) - { - ss << "("; - ss << "(currentCount"; - ss << i; - ss << ">"; - if (vSubArguments[i]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken* pSVR = - static_cast<const formula::SingleVectorRefToken*> - (vSubArguments[i]->GetFormulaToken()); - ss << pSVR->GetArrayLength(); - } - else if (vSubArguments[i]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - const formula::DoubleVectorRefToken* pSVR = - static_cast<const formula::DoubleVectorRefToken*> - (vSubArguments[i]->GetFormulaToken()); - ss << pSVR->GetArrayLength(); - } - ss << ")||isNan(" << vSubArguments[i] - ->GenSlidingWindowDeclRef(true); - ss << ")?0:"; - ss << vSubArguments[i]->GenSlidingWindowDeclRef(true); - ss << ")"; - } - else - ss << vSubArguments[i]->GenSlidingWindowDeclRef(true); -#else - ss << vSubArguments[i]->GenSlidingWindowDeclRef(true); -#endif - } - ss << ", 0.0);\n\t}\n\t"; - ss << "return tmp;\n"; - ss << "}"; -#endif -#ifdef UNROLLING_FACTOR ss << "\tint i;\n\t"; ss << "int currentCount0;\n"; for (unsigned i = 0; i < vSubArguments.size() - 1; i++) @@ -1705,8 +1587,6 @@ public: } ss << "return tmp;\n"; ss << "}"; -#endif - } virtual bool takeString() const SAL_OVERRIDE { return false; } virtual bool takeNumeric() const SAL_OVERRIDE { return true; } commit 8e6514f9ca319a74f156f23023a35fd99761e9a2 Author: Tor Lillqvist <[email protected]> Date: Thu Jan 8 14:39:31 2015 +0200 Bin obsolete conditional compilation USE_FMIN_FMAX has been defined a long time. There is no information in any comment or in the commit that introduced it why one would not want to use the OpenCL fmin() and fmax() built-in functions (intrinsics). Keeping such stuff in the source code (and in the generated OpenCL code) is pointless and just makes it harder to read. Change-Id: Ibc0b950c0f16872867eb5eff089b33b00cb95028 diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index 07a283d..0fd192f 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -31,8 +31,6 @@ #include "op_addin.hxx" /// CONFIGURATIONS -// Comment out this to turn off FMIN and FMAX intrinsics -#define USE_FMIN_FMAX 1 #define REDUCE_THRESHOLD 201 // set to 4 for correctness testing. priority 1 #define UNROLLING_FACTOR 16 // set to 4 for correctness testing (if no reduce) @@ -48,13 +46,6 @@ static const char* publicFunc = "double fsub(double a, double b) { return a-b; }\n" "double fdiv(double a, double b) { return a/b; }\n" "double strequal(unsigned a, unsigned b) { return (a==b)?1.0:0; }\n" -#ifdef USE_FMIN_FMAX - "double mcw_fmin(double a, double b) { return fmin(a, b); }\n" - "double mcw_fmax(double a, double b) { return fmax(a, b); }\n" -#else - "double mcw_fmin(double a, double b) { return a>b?b:a; }\n" - "double mcw_fmax(double a, double b) { return a>b?a:b; }\n" -#endif ; #ifdef WIN32 @@ -1882,7 +1873,7 @@ public: virtual std::string GetBottom() SAL_OVERRIDE { return "MAXFLOAT"; } virtual std::string Gen2( const std::string& lhs, const std::string& rhs ) const SAL_OVERRIDE { - return "mcw_fmin(" + lhs + "," + rhs + ")"; + return "fmin(" + lhs + "," + rhs + ")"; } virtual std::string BinFuncName() const SAL_OVERRIDE { return "min"; } }; @@ -1895,7 +1886,7 @@ public: virtual std::string GetBottom() SAL_OVERRIDE { return "-MAXFLOAT"; } virtual std::string Gen2( const std::string& lhs, const std::string& rhs ) const SAL_OVERRIDE { - return "mcw_fmax(" + lhs + "," + rhs + ")"; + return "fmax(" + lhs + "," + rhs + ")"; } virtual std::string BinFuncName() const SAL_OVERRIDE { return "max"; } }; commit 4188576f9368b689ae7cfa4cd3fdd17318605d85 Author: Tor Lillqvist <[email protected]> Date: Thu Jan 8 14:19:50 2015 +0200 Bin obsolete conditional compilation MD5_KERNEL has been defined always for a long time, and I don't see why we wouldn't want that functionality. Change-Id: I7ee220ac3354fb8e5f6556259147675847aab68d diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index a458b8d..07a283d 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -73,10 +73,8 @@ const unsigned long __nan[2] = {0xffffffff, 0x7fffffff}; #include <iostream> #include <sstream> #include <algorithm> -#define MD5_KERNEL 1 -#ifdef MD5_KERNEL + #include <rtl/digest.h> -#endif #include <boost/scoped_ptr.hpp> #include <boost/scoped_array.hpp> @@ -3405,7 +3403,6 @@ void DynamicKernel::CodeGen() std::string DynamicKernel::GetMD5() { -#ifdef MD5_KERNEL if (mKernelHash.empty()) { std::stringstream md5s; @@ -3422,9 +3419,6 @@ std::string DynamicKernel::GetMD5() mKernelHash = md5s.str(); } return mKernelHash; -#else - return ""; -#endif } /// Build code commit df030ad22740497e02e319a9471e9cf504df4d67 Author: Tor Lillqvist <[email protected]> Date: Thu Jan 8 14:16:49 2015 +0200 Bin obsolete conditional compilation NO_FALLBACK_TO_SWINTERP has been undefined for a long time. I doubt anybody knows any more what it means, and in what situations it might perhaps make sense to define it. Should it be a compile-time choice anyway, in that case, or a run-time one? What is a "TDD run"? Test-Driven Development? But we have our unit test mechanism for that. Change-Id: If3e21e958ebeb689a8aac8eb7393c02f7143401c diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index b0a16a5..a458b8d 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -81,8 +81,6 @@ const unsigned long __nan[2] = {0xffffffff, 0x7fffffff}; #include <boost/scoped_ptr.hpp> #include <boost/scoped_array.hpp> -#undef NO_FALLBACK_TO_SWINTERP /* undef this for non-TDD runs */ - using namespace formula; namespace sc { namespace opencl { @@ -3656,12 +3654,8 @@ DynamicKernel* DynamicKernel::create( ScTokenArray& rCode, int nResultSize ) catch (const UnhandledToken& ut) { SAL_WARN("sc.opencl", "Dynamic formula compiler: unhandled token: " << ut.mMessage << " at " << ut.mFile << ":" << ut.mLineNumber); -#ifdef NO_FALLBACK_TO_SWINTERP - assert(false); -#else delete pDynamicKernel; return NULL; -#endif } catch (...) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
