New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 1002 - VS2008 64-bit crashes when compiling Eigen code
Summary: VS2008 64-bit crashes when compiling Eigen code
Status: RESOLVED WORKSFORME
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - general (show other bugs)
Version: 3.3 (current stable)
Hardware: x86 - SSE Windows
: Normal Compilation Problem
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3.3
  Show dependency treegraph
 
Reported: 2015-04-22 00:57 UTC by ian.h.bell@gmail.com
Modified: 2016-02-12 21:54 UTC (History)
3 users (show)



Attachments

Description ian.h.bell@gmail.com 2015-04-22 00:57:41 UTC
I updated to d47b8caa6471674effde8700bc039ac5ab27bc67 and now MSVC2008 64-bit compilation dies with an error regarding SSE:

c:\coolprop-windows-dtu-slave\python-binaries-windows-64bit-py27\build\externals\eigen\eigen\src/Core/arch/SSE/PacketMath.h(849) : fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'msc1.cpp', line 1411)
 To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++ 
 Help menu, or open the Technical Support help file for more information
Internal Compiler Error in c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\cl.exe.  You will be prompted to send an error report to Microsoft later.

Oddly, 32-bit MSVC2008 works.
Comment 1 ian.h.bell@gmail.com 2015-04-22 02:22:29 UTC
If I set EIGEN_DONT_VECTORIZE preprocessor, it compiles
Comment 2 Christoph Hertzberg 2015-04-22 09:14:50 UTC
Does it compile if you remove all the pblend-code (Lines 840--868)?

As far as I see, they are only used by the Tensor-module at the moment, so it should not break anything elsewhere.
Eventually, these should be implemented using SSE-masks instead of Selector<int>, for better performance (cf. Bug 97) -- or whatever SIMD-comparisons return (on other architectures).

I don't see anything particularly complicated in these lines of codes, though.
Comment 3 Gael Guennebaud 2015-04-24 15:13:59 UTC
There are other ICEs, even on a 32 bits system, for instance see:

http://manao.inria.fr/CDash/viewBuildError.php?buildid=19171

In general ICE should rather be reported to the respective compiler developers.
Comment 4 ian.h.bell@gmail.com 2015-04-24 15:22:08 UTC
Yes, but this code used to work, therefore as a change in Eigen caused this problem, it should be up to Eigen to fix/workaround this bug.  Do you test on MSVC?  It seems every time I pull a new version of Eigen it breaks my MSVC2008 builds.
Comment 5 Christoph Hertzberg 2015-04-24 19:55:12 UTC
You are more than welcome to run our test-suite and submit the results:
http://eigen.tuxfamily.org/index.php?title=Tests#Submissions_on_MSVC_Systems

I agree with Gael that ICEs are bugs in the compiler, so we can hardly "fix" them. Regarding a workaround, did you try to what I suggested in comment 2?
Comment 6 Gael Guennebaud 2016-01-29 21:19:34 UTC
I don't observe any ICE on our visual builds anymore. Without more materials, I will close that one.

Note You need to log in before you can comment on or make changes to this bug.