Internal Compiler Error when compiling EigenSolver - by Aaron Kaluszka

Status : 

  Fixed<br /><br />
		This item has been fixed in the current or upcoming version of this product.<br /><br />
		A more detailed explanation for the resolution of this particular item may have been provided in the comments section.

Sign in
to vote
ID 730417 Comments
Status Closed Workarounds
Type Bug Repros 2
Opened 3/11/2012 1:16:18 AM
Access Restriction Public
Moderator Decision Sent to Engineering Team for consideration


When compiling EigenSolver from the Eigen package ( ) with global optimization (/Og) and debug options enabled, the compiler fails with an internal error.
Sign in to post a comment.
Posted by Ian [MSFT] on 9/5/2012 at 10:58 AM
Semi Essessi, i would very much like to get my hands on these examples. I have seen a few cases where inlining causes complier throughput problems, but these have always involved __forceinline functions. The problem here is that using __forceinline ties the compilers hands as it must inline the function regardless of the affect it will have on code generation or compile times. If you have an example in which code generation is taking an unexpectedly long time I am interested in investigating. The compiler should always finish compiling in a "reasonable" amount of time.

ian Bearman
Principal Software Developer
VC++ Code Generation & Optimization
Posted by Semi Essessi on 9/5/2012 at 1:51 AM
This problem occurs in many other contexts when using this library, I strongly suspect - having experienced other problems with it, and based on the suggested fix of using __declspec(noinline) - that the compiler's inlining mechanism is failing or doing silly things... i note that in my own code (not using Eigen) I can create several hour long compile-times by forcing the inlining of trivial functions (setters etc.)

I can provide examples if needed.
Posted by Eric [MSFT] on 3/16/2012 at 1:25 PM
Hi Aaron, thanks for the bug report. This issue will be fixed for the RTM release of VS11.

If you need a temporary workaround without turning off optimizations, you can either:

1) Mark the c() and s() getter functions as __declspec(noinline) in class JacobiRotation

(in c:\eigen\eigen\src\jacobi\jacobi.h)

template<typename Scalar> class JacobiRotation
        __declspec(noinline) Scalar& c() { return m_c; }
        __declspec(noinline) Scalar c() const { return m_c; }
        __declspec(noinline) Scalar& s() { return m_s; }
        __declspec(noinline) Scalar s() const { return m_s; }

2) Compile your project with /O1 instead of /O2

But again, please note that this will be fixed when VS11 is released.

VC++ Code Generation & Optimization
Posted by Ian [MSFT] on 3/15/2012 at 11:01 AM
Okay, i have the attachment now and i am able to reproduce the failure. Thanks for taking the time and sticking with this.

ian Bearman
VC++ Code Generation & Optimization
Posted by Aaron Kaluszka on 3/15/2012 at 10:34 AM
It says it did, but I don't see it either. I've uploaded it again. It says it was successful, but may take minutes to hours to show up.
Posted by Ian [MSFT] on 3/15/2012 at 10:11 AM
Unfortunately, i'm still not seeing the .ZIP file. Are you sure the file uploaded correctly?
Posted by Ian [MSFT] on 3/14/2012 at 11:36 AM
Ah, that is good to know. (The system clearly wasn't designed for compiler issues.)

You should be receiving an email with a URL for the file share i set up. You'll need a password to access it which i was about to send in a second email. I will hold off though as hopeful i will get the attachment soon. If not i'll send the share password your way.

ian Bearman
VC++ Code Generation & Optimization

Posted by Aaron Kaluszka on 3/14/2012 at 11:32 AM
Actually, it's just that *.i is not in the whitelist. I ZIP'd the file and it was successful.
Posted by Ian [MSFT] on 3/14/2012 at 11:28 AM
It's possible that that the file is too large. I will contact you off-line to set up a share to transfer the file.
Posted by Aaron Kaluszka on 3/14/2012 at 10:47 AM
Yeah, I got an error after the upload:

The following files were not successfully attached.


That's all it says.
Posted by Ian [MSFT] on 3/14/2012 at 10:08 AM
Thank you for your response. However, i'm not seeing any attachments on my end. Would you mind attaching it again? I'll contact someone to see if this is a system issue.

ian Bearman
VC++ Code Generation & Optimization
Posted by Aaron Kaluszka on 3/13/2012 at 11:21 AM
Preprocessed file attached. Please let me know if you need further information.
Posted by Ian [MSFT] on 3/12/2012 at 9:52 AM
Aaron Kaluszka, thanks for reporting this Internal Compiler Error. In order to investigate this i'm going to need a stand alone repro case. You can find out how to generate a good compiler repro case at this web page:

In particular, based on your report, i think you'll want to create a preprocessed file which is detailed here:

ian Bearman
VC++ Code Generation & Optimization

Posted by MS-Moderator10 [Feedback Moderator] on 3/11/2012 at 11:58 PM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.
Posted by MS-Moderator01 on 3/11/2012 at 6:10 PM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(