A dynamic instruction trace often contains many unnecessary instructions that are required only by the unexecuted portion of the program. Hot-cold optimization (HCO) is a technique that realizes this performance opportunity HCO uses profile information to partition each routine into frequently executed (hot) and infrequently executed (cold) parts. Unnecessary operations in the hot portion are removed, and compensation code is added on transitions from hot to cold as needed We evaluate HCO on a collection of large Windows NT applications. HCO is mast effective on the programs that are call intensive and have flat profiles, providing a 3-8% reduction in path length beyond conventional optimization.