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: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 28 Jan 2009 14:36:22 +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=verQNnEXTCCFwULGBuh51h18WCRw3Edo9nmI4Ul69to=; b=dbPqZJYwexMS/gXk5k62jJESgNFBuTYH31f+1KN71yX47EaJ2g0W3kZ+ZXmJiQgudq Hzlqm9fELa4aKXMfLcAOP3mzMGIenBZ1oIno1Nyn2R/aJKfoE5h3VzYqbSDddqlCVPUD rRoVM9F6Mo1ZnX8S9LyKxBZ2CWb8aBOtB5vuo=
- 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=wQgJB3vCOlnEqZzjydvgluTW+cwUX3U0MvN4FOu0g2Tx0D2UHJx2XtTKAAVwvGMG3V h8RhzyikdttJ9FzFlLxXs48A8ocSC+Eo8iu5IV7D6O6JrwFVoqRoccclEIKs0sNbOv7r Nb3mqt5V546p4+3h5EBqvELBm78vk+ScbUKZs=
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)
>> {
>>
>>
>
>
>