- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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 blitz
cd blitz
autoreconf -fiv
./configure
make lib
cd testsuite
make multicomponent
Any ideas what could cause this?
Thanks,
/Patrik
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page