I have a Fortran 90 program compiled and linked with
pgf90 -r8 -fastsse -Mipa=fast -Kieee -Ktrap=inv,divz,ovf
I also link in a library in the form of an .a file. It is written in C++ and compiled with the GNU compiler. This is all on Linux.
Is this, that is -Mipa, supposed to work in this case? PGI versions 6 and 7 (in particular, pgf90 7.1-6) happily did it, e.g.
IPA: no IPA optimizations for 4 source files
IPA: Recompiling ./objects/foo.o: new IPA information
However, pgf90 8.0-3 says
The following function(s) are called, but no IPA information is available:
<C++ routine names_>
Linking without IPA
Is the new behaviour right, and if so, how should I fix this?
Thanks and regards,
I’m not sure why this behavior has changed and will pass this along to our engineers to see if they have a better explanation. If you could send an example to PGI customer service (email@example.com) and ask them to forward it to me, I would appreciate it. I’ve tried to recreate the problem, but was unable to get my test to fail.
Note that you can add the “safe” option to IPA, (-Mipa=fast,safe) to work around the problem. This tells the compiler to go ahead with the IPA compilation even if there are missing symbols. The option can lead to incorrect code but most likely is ok in your circumstance.
Thanks for the answer.
My “real” program is too complicated to send. I tried to make a simple test showing the same problem, but I wasn’t able to. I’m not much into C/C++, and I don’t know how to debug this further.
The engineer I need to talk with is our of town this week, but hopefully when he returns he can give me some ideas for you. Obviously, there’s something particular about your code.
Did “-Mipa=fast,safe” help?
Sorry for the late answer. Yes, with -Mipa=fast,safe I (seemingly) get the same behaviour as with the “old” compiler versions.