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.
If I set EIGEN_DONT_VECTORIZE preprocessor, it compiles
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.
There are other ICEs, even on a 32 bits system, for instance see:
In general ICE should rather be reported to the respective compiler developers.
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.
You are more than welcome to run our test-suite and submit the results:
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?
I don't observe any ICE on our visual builds anymore. Without more materials, I will close that one.