The size of compiled C code is becoming increasingly critical in embedded systems, where the economic incentives to reduce ROM sizes are very compelling:
Product managers have an almost insatiable demand for cost-effective solutions in the mass production of consumer goods such as cellular phones, electric motor controls, and automotive engineering applications. Reducing code size means reducing system costs.
Customers want the functionality of existing designs to be enhanced via additional code sequences. Unfortunately they no longer fit available memory at a certain point. Code compaction means saving additional engineering effort and extending application lifetime while speeding up time to market.