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

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


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/