Why cannot I see icpc calls xild with multi-file -ipo set up? (source code: https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz)
strace icpc -DUSE_MPI=0 lulesh.cc lulesh-comm.cc lulesh-viz.cc lulesh-util.cc lulesh-init.cc -v -qopenmp -ipo -lm -o lulesh2.0 &>t
I can only see gnu ld is called.
It is really confusing.
In my mind, the compilation is as follows (https://software.intel.com/en-
There are two possible models and they should be able to generate the same binary.
However, my experiment w/ LULESH 2.0 does not support such a claim.
I compare the two generated executables with diff.
My question is: is the claim wrong or I should use other tool to compare executables generated by the following two models?
[Model 1: explicitly link w/ xild for ipo]
1. icpc -ipo *.cc to compile each .cc file into object file with Intel intermediate IR.
2. xild performs IPO with *.o (with Intel IR)
3. xild invoke gnu ld to link libraries and generate final executable.
[Model 2: implicitly link w/ icpc for ipo]
1. same as 1 in Model 1.
2. icpc -DUSE_MPI=0 lulesh.o lulesh-comm.o lulesh-viz.o lulesh-util.o lulesh-init.o (may or may not add -ipo flag)
//icpc will do ipo and then invoke ld to generate final executable.