Patent ID: 8954945
Filing Date: 2015-02-10
Classification: G06F

Abstract:
1. A computer program product for minimizing spill code in hot regions, the computer program product comprising a computer readable program storage memory having product code embodied therewith, the program code executable by a processor to: split each live range of a variable into multiple sub-ranges on all edges leading to joint points and coming from fork points in a control flow graph before coloring nodes in a corresponding interference graph, wherein a portion of the sub-ranges is inactive; profile each sub-range based upon traversal of a basic building block of said control flow graph; select frequently executed regions of code, and limit coalescing sub-ranges to said selected frequently executed regions of code based upon profiles, including removal of copies dividing initial live ranges into sub-ranges in said frequently executed regions, and wherein coalescing is limited to regions consisting of said frequently executed regions; and select a set of sub-ranges in less used regions to be spilled into memory, without spilling sub-ranges during the coloring phase and without leaving 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.