It depends what is very large?
Do you compare it to .so compiled with some other compiler, like gcc?
Is it 20% bigger or two times bigger?
Can you share your compilation options with us, so we won't be guessing so much.
I am also trying to reduce my code size, and this is my experience:
With icc, -O1 generates both fastest and smallest object in my case (lots of integer math). Your results may differ, but it is worth a try.
will also make much smaller C++ object, if your code does not use exceptions, or if the performance won't suffer by omitting the inline optimization.
You should also strip your .so file, if size matters to you.
Intel compiler may be doing inlining. It would be nice if you can help if you can quantify the increase in code size. Could you help us with sample testcase to help us review the code?