Inter Procedural Optimization

Inter Procedural Optimization

Hello
I am trying to run Inter Procedural Optimization
I am compiling a mixture of Fortran and C on LINUX, RedHat7.2, using icc and ifc vers 7.0

After the optimization is done, I got the error message:

/tmp/xild3DFi5has: Assembler messages:
/tmp/xild3DFi5has:2326188: Error: Ignoring attempt to re-define symbol
/tmp/xild3DFi5has:2326188: Error: Rest of line ignored. First ignored character is `,'.
xild: error: problem during multi-file optimization compilation (code 1)

Im linking with the folowing command
xild -qipo -O3 -tpp7 -xW -opt_report -Vaxlib -o progbin /objs1/*.o MAIN.o -lm -lc -ldl -lPEPCF90 -C90

And during the compilation of fortran an c routines, the optimisation command are -O3 -tpp7 -xW -ipo

The compilation run well without the -ipo option.

Then I tried to link with the following command (which should be exactly equivalent)
ifc -O3 -tpp7 -xW -ipo -nus -cm -w90 -WB -Vaxlib -o progbin /objs1/*.o MAIN.o -lm -lc -ldl -lPEPCF90 -C90

I got the message.
ld: cannot open ipo_ifc9ewcUy.o: No such file or directory
make[1]: [link] Error 1 (ignored)
make[1]: Leaving directory

Thanks for your help

2 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

Hard to figure it all out without seeing the full environment. I would try compiling everything in the same directory as the one with main where you are going to link. I would use the ifc version of the link command. (It looks like there was some confusion over where to find the merged object file). I would also omit -lm, -lc, and -lPEPCF90. You should get the correct runtime libraries automatically, and -lPEPCF90 is potentially in conflict with -Vaxlib -C90.

If this doesn't help, the next step would be to submit a test case to Intel Premier Support. If it works, you can go back to trying to compile in different directories. Remember that you need to preserve any .il files, which are needed for the interprocedural recompilation that is hidden in the link step.

Martyn

登陆并发表评论。