The Code Compressor takes into account that it may have to start with code that is larger than the available memory. It assumes that the ROM is 20-25% larger and then attempts to pack the code into the proper ROM maximum size.
The PSoC Designer Code Compressor replaces duplicate code blocks with a call to a single instance of the code. It also optimizes long calls or jumps (LCALL or LJMP) to relative offset calls or jumps (CALL or JMP).
Code compression occurs (if enabled) after linking the entire code image. The Code Compressor uses the binary image of the program as its input for finding duplicate code blocks. Therefore, it works on source code written in C or assembly or both. The Code Compressor utilizes other components produced during linking and the program map is used to take into account the various code and data areas.
To enable the PSoC Designer Code Compressor, click Project > Settings > Compiler tab. Code Compressor options are enabled or disabled for the open project by checking one, none, or both Compression Technologies: Condensation (duplicate code) or Sublimation (unused user module API elimination).