Programming Itanium-based Systems: Developing High Performance Applications for Intel's New Architecture

Any compiler worth its salt comes with a bucketful of switches to control various aspects of compilation, and the Intel ecl compiler is no exception. Table 11.2 shows just those switches that, at this writing, are listed as pertaining to optimization. Most are selfexplanatory, and a detailed discussion of each one is beyond the scope of this book.
| Performance | |
|---|---|
| /O1 | optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit: /Gfsy /Ob1gysi- /Qunroll0 |
| /O2 | optimize for maximum speed (DEFAULT): /Gfsy /Ob1gyti |
| /O3 | optimize for maximum speed and enable high-level optimizations |
| /Ox | enable maximum optimizations : /Gs /Ob1gyti(same as /O2 without /Gfy) |
| /Od | disable optimizations; useful for selective optimizations (i.e. /Od /Og) |
| /Ob< n> | control inline expansion: |
| /Og | enable global optimizations |
| /Oi[-] | enable/disable inline expansion of intrinsic functions |
| /Op[-] | enable/disable better floating-point precision |
| /Os | enable speed optimizations, but disable some optimizations which increase code size for small speed benefit (overrides /Ot) |
| /Ot | enable speed optimizations (overrides /Os) |
| /Oa[-] | assume no aliasing in program |
| /Ow[-] | assume no aliasing within functions, but assume aliasing across calls |
| /GR[-] | enable/disable C++ RTTI |
| /GX[-] | enable/disable C++ exception handling (/GXis same as /EHsc) |
| /EHa | enable asynchronous C++ exception... |