Global variable coalescing
AssigneeInternational Business Machines Corporation
InventorsRobert James Blainey, Christopher Michael Donawa, James Lawrence McInnes
Life of this patent
Estimating the term…
Abstract
An interprocedural compilation method for aggregating global data variables in external storage to maximize data locality. Using the information displayed in a weighted interference graph in which node weights represent the size of data stored in each global variable and edges between variables represent access relationships between the globals, the global variables can be mapped into aggregates based on this frequency of access, while preventing the cumulative data size in any aggregate from exceeding a memory size restriction.
Claims6
A method for remapping global data variables during program compilation, comprising the computer-executed steps of:
- setting a limit;
- selecting global data variables referenced in the program;
- assigning a weight value to each selected global data variable representing byte size of data in that variable;
- dividing the selected global data variables into pairs of variables that are accessed together and re-ordering the pairs from highest to lowest affinity;
- and
- beginning from a pair of variables of highest affinity, dividing the selected global data variables into aggregate groupings, each grouping having an aggregate weight value not exceeding the limit.
A program storage device readable by a machine in a data processing system, tangibly embodying a program of instructions executable by the machine to perform method steps executable by a computer for remapping global data variables during program compilation, said method steps comprising:
- setting a limit;
- selecting global data variables referenced in the program;
- assigning a weight value to each selected global data variable representing byte size of data in that variable;
- dividing the selected global data variables into pairs of variables that are accessed together and re-ordering the pairs from highest to lowest affinity;
- and
- beginning from a pair of variables of highest affinity, dividing the selected global data variables into aggregate groupings, each grouping having an aggregate weight value not exceeding the limit limit.
Dependencies are inferred from the claim text.