C/C++ Compiler (cl.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Optimization Options
                                             Up Contents Index Back
─────C/C++ Compiler─────────────────────────────────────────────────────────
 
     Optimization selections make your program smaller or faster by
     eliminating unnecessary instructions and rearranging code.
 
     Option     Description
 
     /Oa      Specifies that aliases do not exist in your code;
                you must ensure that they do not
     /Ow      Specifies that aliases might occur across function
                calls
     /Oc      Enables block-level common subexpression optimization:
                allows the compiler to calculate the value of a common
                subexpression once (default)
     /Og      Enables global-level common subexpression optimization:
                allows the compiler to calculate the value of a common
                subexpression once
     /Od      Disables optimization
     /Oe      Disables register keyword and allows storage of
                frequently used variables and subexpressions in
                registers
     /Ol      Enables loop optimizations: allows moving or rewriting
                code so that it executes faster
     /Op      Improves floating point consistency; allows better
                tests for equality and inequality
     /Or      Enables single exit point from functions; useful when
                debugging with CodeView
     /Os      Minimizes executable file size
     /O, /Ot  Minimizes execution speed (default)
 
     Miscellaneous
 
     /Ob<n>   Controls inline expansion, where <n> is a digit from 0
                through 2
     /Oi      Generates intrinsic functions
     /On      Turns off potentially unsafe loop optimizations
     /Oz      Turns on potentially unsafe loop optimizations
     /Oo[-]   Turns on [or off] post code-generation optimizing
                (/Oi-, p-code default)
     /Ox      Maximizes optimization
 
     P-Code
 
     /Oq      Turns on p-code optimization
     /Of[-]   Turns on [or off] p-code quoting (default)
     /Ov[-]   Controls frame sorting (default)
 
     The letters following the /O, including the digits in b<n>, can
     appear in any order. When there is a conflict, the compiler uses
     the last /O option given. Each option applies to all source files
     following it on the command line.
 
     NOTE: If you are using the debugger, you may want to set the /Od
           option. If you don't specify /Od, some forms of the compiler
           perform optimizations that move code, possibly making it
           difficult for you to follow your program in the debugger.
 
     See also: Maximum Optimization
               Preparing for Debugging
               Removing Stack Probes (/Gs)
               optimize pragma
               intrinsic pragma
               check_stack pragma
                                    -♦-