/QIPF_noPIC (Generate Position Dependent Code)
By default, the Visual C++ compiler for Itanium generates position independent code. /QIPF_noPIC generates an image with position dependent code.
/QIPF_noPIC is only available in compilers targeting Itanium. This compiler option is not available in the compilers targeting x64 or x86.
Code that is position independent can be loaded more quickly than code that is position dependent, if the image cannot be loaded at its preferred address, because relative addresses in position independent code are not patched if the image is loaded at an address other than its preferred address. Also, Windows allows users to share the same code if it is not patched, whereas each user gets a separate instance of patched code.
However, code that is position independent may have poorer performance than code that is position dependent, if the image cannot be loaded at the preferred address. A server application, for example, where users may not care about (potential) longer startup times, and where users rarely run several copies of those applications at the same time, may benefit from the additional performance that position dependent code gives.
To set this compiler option in the Visual Studio development environment
- /QIPF_noPIC is not available in the Visual Studio development environment.
To set this compiler option programmatically
- See AdditionalOptions.