- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On one system, I am using icpc 10.1 release 20081024 to build an application. Both -O0 and -O3 run correctly. My 20081024 build output contains warnings like
/tmp/icpcMFefDdas_.s: Assembler messages:
/tmp/icpcMFefDdas_.s:1746124: Warning: assuming all members of group `_ZNK8suzerain9underling4plan26execute_long_n2_to_long_n1Ev' are COMDAT
On another system, I am using icpc 10.1 release 20080602 to build the same application. The build for -O0 runs correctly but -O3 dies mysteriously*. No such COMDAT assumption warnings are emitted by the 20080602 compiler.
Is it possible that the difference is related to this assembler warning? Does anyone have background documentation on the warning and its implications?
Thanks in advance,
-Rhys
mysteriously* = FFTW 3.3 w/ threading and MPI-enabled inexplicably returns a NULL fftw_plan. I say mysteriously because the same FFTW 3.3 shared library is being linked against for the working and non-working case and the requested fftw_plan is identical. I can isolate the problem to how my code is built. FWIW, this -O3 problem atop 20080602 did not start until I started using FFTW 3.3's OpenMP-based threading.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well, if it is a bug in the compiler, you'd need to upgrade to a newer newer one to get a fix, so I'm not sure how practical it would be to try to find a bug that's apparently fixed some time back in the compiler. You could try to isolate the file and build just that file with -O0, or even use "pragma optimize" if you can isolate it to a single function. I wouldn't expect the COMDAT warning to be a problem, but mpi is not my forte. Of course it may not be a compiler issue, so it might be worth trying to trace the problem back in the debugger, but I know that can be painful.
Can you build your code on the system were you have the newer compiler and copy it back to the other one? I think since they're both 10.1 compilers that should be safe.
Dale
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well, if it is a bug in the compiler, you'd need to upgrade to a newer newer one to get a fix, so I'm not sure how practical it would be to try to find a bug that's apparently fixed some time back in the compiler. You could try to isolate the file and build just that file with -O0, or even use "pragma optimize" if you can isolate it to a single function. I wouldn't expect the COMDAT warning to be a problem, but mpi is not my forte. Of course it may not be a compiler issue, so it might be worth trying to trace the problem back in the debugger, but I know that can be painful.
Can you build your code on the system were you have the newer compiler and copy it back to the other one? I think since they're both 10.1 compilers that should be safe.
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the suggestions Dale.
I've been trying to use the 20081024compiler's diagnostics on the working system to identify anything suspicious in my code. I'm concerned that somehow I've stumbled onto undefined behavior in the language that has changed between the versions. Nothing suggestive has popped up using "-Wall -Wcheck -Weffc++ -Wpointer-arith -Wabi". The source code analysis backend dies. :) Any suggestions for things to try would be much appreciated.

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