Re: [eigen] internal compiler error in cachefriendlyproduct.h |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] internal compiler error in cachefriendlyproduct.h
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Wed, 28 Jan 2009 13:54:35 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=IM+OGic+e+j+yPizgaCKTfCJzbaNUhM3bLPhK3ahze8=; b=F7UkqifD28qhixJKXq7N/5V2IXUhINhEcG35PLt+3fds5MPM2bRxl8B5T0scxr8bwg BY3gwWL+xwN3GAPRk3W/1az4KWMYg4LHgdzSKlxLh2D367xTG92XDnYFEhGY9DajrFom Xq++37y4JNJuXDwDiJBaHMHdSQiJ09NUSqRe4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=mpQSh5sSgZfibl+6755EkVcrrv4exeUnfNXIh1+wPyThwf/evZDGRvySh5Iu1pEj0+ Ci0n2IEAUPaP439N7DpblV1YjslsZgDmspqHk3FjGBqZybyrhFNpinAS+NerosrSIc/s 37bLFDKecSXKK/WMO0n/0KBZ0xuC/CibwKwGg=
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)
> {
>
>