Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

12.0.3 slow to the point of hanging

I've been working on the blitz++ expression template library, which instantiates a lotof templates,and I've noticed that v12 seems quite a lot slower than v11 in compiling overall. Moreover, in compiling some more complicated test cases, v12 will actually take so long so as to effectively not function: it takes v11.1.046 30s to compile this code, but with 12.0.3 I killed the compilation after 18 hours (!)when it still had not finished. This is not an optimization issue, as it happens regardless of optimization level. The mcpcom process at that point used 33gb of memory, but this is comfortably within the amount of memory on the machine, so it was not swapping.
To reproduce, do:
hg clone blitz
cd blitz
autoreconf -fiv
make lib
cd testsuite
make multicomponent
Any ideas what could cause this?
0 Kudos
1 Reply
I think I figured this out. It was because the code had some #pragma forceinline recursive in it, which was not recognized by v11 so had been put in and not removed. When switching to v12 these were recognized and this is what killed the compilation time.
Incidentally, I thought the compiler warned if it doesn't recognize a pragma. At least this is what happens if you do #pragma saoetuh. So it's somewhat deceptive that v11 accepts the pragma but doesn't do anything with it.