- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Does multi-file IPO really work in the context of visual studio? I'm trying to utilize inlining across multiple files within a static library, but cannot make it work. I have enabled -qopt-report=3 and the INLINING REPORT always lists -> mysubroutine(EXTERN) for every subroutine/function call, including all the subroutines within the project.
If I move one of the subroutines into the same file as a calling subroutine, then it does inline with significant performance benefit. That's not a viable solution for me, but it does prove that inlining is worth pursuing.
How do I make this work across files?
If I move one of the subroutines into the same file as a calling subroutine, then it does inline with significant performance benefit. That's not a viable solution for me, but it does prove that inlining is worth pursuing.
How do I make this work across files?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When you build a static library with /Qipo. no optimization takes place until you link the program with an Intel compiler also using /Qipo. No inlining can be done until the link step.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is it possible then to link with an Intel compiler with a main project that is VC? I have lots of Intel Fortran projects that I want to use Qipo with, and several MS C projects that I don't care if they have optimizations or not (including my main).
I do have Intel C++ XE too, but I have not converted my C++ projects over yet. Would this be easier if I made the switch, and what extra steps are necessary to pass Qipo to the linker?
Thanks for the help.
I do have Intel C++ XE too, but I have not converted my C++ projects over yet. Would this be easier if I made the switch, and what extra steps are necessary to pass Qipo to the linker?
Thanks for the help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is possible, but a bit more complicated. Fundamentally, you need to run either ifort or xilink to do the linking. Yes, it would be much simpler if you switched the C++ project to using Intel C++ - then you would just enable /Qipo for both projects and it should work automatically. This is done under C++ > Optimization [Intel C++].
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page