##### Syntax

-Oxcx[= n]

##### Description

This optimization is identical to the Code Factoring optimization except that it works much harder to find common code sequences and, consequently, is much slower than the standard cross calling optimization. We recommend that you do not use this optimization unless you wish to reduce code size to the smallest possible as this optimization takes a long time to run for large programs.

Code factoring will always reduce the size of a program at the expense of execution speed as there is an overhead for the additional subroutine call and return instructions.

The option parameter n defines the number of bytes that must the common instruction sequence must contain before it is abstracted into a subroutine. Smaller values of n are likely to find more common sequences and will transform the code into a smaller, but slower, program. Larger values of n will find fewer common sequences, where each of those sequences are longer and will transform the code in to a slightly larger, and slightly faster, program.

The time complexity of the algorithm use depends upon n. Smaller values of n require more time for optimization to find and transform the small code sequences, whereas larger values of n requires less time to run as fewer common code sequences will be identified.

It is extremely difficult to debug a program which has been linked with cross calling enabled because parts of functions will be extracted and placed into their own subroutine.

##### See Also

-Oxc (Code factoring optimization)