Patent ID: 8555270

Claim:
A method for minimizing spill code in hot regions comprising: splitting each live range of a variable into multiple sub-ranges on all edges leading to joint points and all edges coming from fork points in a control flow graph before coloring nodes in a corresponding interference graph, wherein a portion of sub-ranges is inactive; profiling each sub-range based upon traversal of a basic building block of said control flow graph; selecting frequently executed regions of code; limiting a process of coalescing sub-ranges to said selected frequently executed regions of code based upon profiles thereby removing copies dividing initial live ranges into sub-ranges in said frequently executed regions and absent coalescing in regions other than said frequently executed regions; and selecting a set of sub-ranges in less used regions for spilling into memory, absent spilling any sub-ranges during the coloring phase and absent leaving any redundant sub-ranges to the coloring phase, wherein said sub-ranges are selected initially from those classified as significant-inactive and secondarily from those classified as significant-active.