Re: [eigen] internal compiler error in cachefriendlyproduct.h

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Great, this is really worth backporting to the branch!

2009/1/28 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> thanks, both problem fixed!  Now I see it, I remember that I did the
> trick when I had this segfault with MSVC, but I've never committed it,
> and I don't know how it disappeared more me. Anyway, thanks again !
>
> Gael.
>
> On Wed, Jan 28, 2009 at 1:34 PM, FMDSPAM <fmdspam@xxxxxxxxx> wrote:
>> Hi,
>>
>> The attached patch avoids the internal compiler error, at least in my setup.
>>
>> But I'm totally unable to see, if this still is to considered as "cache
>> friendly".  :-)
>> Maybe it is wrong too ?
>>
>> Hopefully, there is a cachefriendly but more simple to compile form of this
>> code area.
>> if not, please confirm something I can use as a work'a'around of that
>> specific problematic (at least to my compiler ?) part.
>>
>> Cheers
>>
>> Frank
>>
>> P.S.
>> The last commit #917639 is broken:
>>
>> ------ Build started: Project: test_regression, Configuration: Release Win32
>> ------
>> Compiling...
>> regression.cpp
>> c:\develop\eigen\eigen\src/QR/QR.h(65) : error C2144: syntax error : 'int'
>> should be preceded by ';'
>>       c:\develop\eigen\eigen\src/QR/QR.h(161) : see reference to class
>> template instantiation 'Eigen::QR<MatrixType>' being compiled
>> c:\develop\eigen\eigen\src/QR/QR.h(65) : error C2059: syntax error : '{'
>> c:\develop\eigen\eigen\src/QR/QR.h(65) : error C2334: unexpected token(s)
>> preceding '{'; skipping apparent function body
>> Build Time 0:01
>> Build log was saved at "file://c:\Develop\Eigen
>> TESTS\test\test_regression.dir\Release\BuildLog.htm"
>> test_regression - 3 error(s), 0 warning(s)
>>
>> Index: Eigen/src/Core/CacheFriendlyProduct.h
>> ===================================================================
>> --- Eigen/src/Core/CacheFriendlyProduct.h       (revision 917656)
>> +++ Eigen/src/Core/CacheFriendlyProduct.h       (working copy)
>> @@ -435,8 +435,15 @@
>>     {
>>       /* explicit vectorization */
>>       // process initial unaligned coeffs
>> -      for (int j=0; j<alignedStart; ++j)
>> -        res[j] += ei_pfirst(ptmp0)*lhs0[j] + ei_pfirst(ptmp1)*lhs1[j] +
>> ei_pfirst(ptmp2)*lhs2[j] + ei_pfirst(ptmp3)*lhs3[j];
>> +      /* explicit vectorization */
>> +      // process initial unaligned coeffs
>> +               for (int j=0; j<alignedStart; ++j) {
>> +                       Scalar s = ei_pfirst(ptmp0)*lhs0[j];
>> +                       s += ei_pfirst(ptmp1)*lhs1[j];
>> +                       s += ei_pfirst(ptmp2)*lhs2[j];
>> +                       s += ei_pfirst(ptmp3)*lhs3[j];
>> +                       res[j] += s;
>> +               }
>>
>>       if (alignedSize>alignedStart)
>>       {
>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/