12.0.3 slow to the point of hanging

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 clonehttp://blitz.hg.sourceforge.net:8000/hgroot/blitz/blitz blitzcd blitzautoreconf -fiv./configuremake libcd testsuitemake multicomponentAny ideas what could cause this?Thanks,/Patrik

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

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.

Leave a Comment

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