Improving memory layout based on connectivity considerations
First Claim
Patent Images
1. A method for optimizing a memory layout of program objects, comprising the computer implemented steps of:
- weighting the access connections between the program objects and determining the cost of the program objects during complication;
building aggregates of the program objects for larger weighted connections before smaller weighted connections, limited by a maximum aggregate cost; and
generating code to map the groups to memory;
whereby the code optimizes the memory layout of the program objects.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique used during interprocedural compilation in which program objects are grouped together based on the weights of the connections between the objects and their costs. System-imposed constraints on memory size can be taken into account to avoid creating groupings that overload the system'"'"'s capacity. The groupings can be distributed over memories located on different processors.
63 Citations
4 Claims
-
1. A method for optimizing a memory layout of program objects, comprising the computer implemented steps of:
-
weighting the access connections between the program objects and determining the cost of the program objects during complication; building aggregates of the program objects for larger weighted connections before smaller weighted connections, limited by a maximum aggregate cost; and generating code to map the groups to memory; whereby the code optimizes the memory layout of the program objects. - View Dependent Claims (2)
-
-
3. A method for optimizing memory layout following complication, comprising the computer-implemented steps of:
-
defining a limit; identifying a referenced program object; building a weighted graph wherein weights on nodes represent program object size and weights on edges represent access relationships between nodes; grouping the heaviest edges together from the weighted interference graph while the total weight of the nodes does not meet the limit; and remapping the program objects based on the grouping; the remapping producing an optimized memory layout of the program objects.
-
-
4. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps of optimizing memory layout following complication, said method steps comprising:
-
defining a limit; identifying a referenced program object; building a weighted graph wherein weights on nodes represent program object size and weights on edges represent access relationships between nodes; grouping the heaviest edges together from the weighted interference graph while the total weight of the nodes does not meet a preset limit; and remapping the program objects based on the grouping.
-
Specification