Long Compile Time

Long Compile Time

Is it possible for the compiler to indicate which modules are causing the problem when it fails with the error "The same named entity from different modules and/or program units cannot be referenced". I have a source file of some 8,000 lines which the complier is taking nearly 15 minutes to process giving this error and pointing to the first line in the file which is a commented out compiler directive - which isn't very helpful.

Is there any way of getting some indication from the compiler as to what it is doing? The source file is one of a number of files that are similar in that they are linked with the same libraries and are used to build similar GUIs. Currently they are all built in debug mode and nine out of ten projects build in seconds while this one source file takes an age to compile. (Or, at the moment, fail to compile.)

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Now it's failing with an internal compiler error.

Please provide us with the source, the source of any modules and include files necessary, and the compile command used.  We'll be glad to investigate.

We are aware of compile time issues involving modules in the 2013 compiler and have a number of improvements in the works. Without seeing a test case, I can't say whether or not these would help you.

I will put in a feature request to identify the modules in question for that error.

Retired 12/31/2016

Thanks Steve. I'm not sure I can supply all the source. (Can you work with object files and mod files and the source that won't compile?) There is an awful lot of it, which is why I wondered whether there was any way the compiler could give an indication of what it was doing and maybe give a clue to a workaround. As it is I'll have to try breaking the code up and maybe losing bits of it until I can get it to compile.

I can't remember when I first noticed that this particular source file was taking a lot longer that the others to compile but I'm pretty sure it was doing it in XE 2011.

We don't need any object files, but we do need the source of all modules. There isn't really anything useful the compiler could tell you here. You can use Intel Premier Support to submit a ZIP of the necessary sources. Please help us to help you - if there's something we can do in the compiler to speed it up, we want to do that.

Retired 12/31/2016

Before I sorted out the code to send, separating module sources out of various library projects etc., I went through all the libraries and modules that I'm using and ensured I was only exposing what was necessary. i.e. made every module private and used public statements where required. Now the source compiles almost instantaneously. I guess I should have written the code like that in the first place.

While modifying one of the modules I did run into a problem. The code was a translation of some C that required using a structure with unions. I couldn't find a way to make the structure public so I had to do some recoding. Is it possible to make a structure public when the module is private?

Interesting - I thought this was possible but I can't make it work. I have asked the developers for comments.

Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today