CPC G06F 9/5016 (2013.01) [Y02D 10/00 (2018.01)] | 16 Claims |
1. A computer-implemented method for optimizing an application for a computing system having multiple distinct memory locations, the method comprising:
selecting a scope from a plurality of scopes in the application, each scope of the plurality of scopes being defined by a section of application code demarcated by syntactic structures in the application code;
determining, by a compiler, one or more data handling properties of a data region accessed in a selected scope;
determining, by the compiler at compile time, one or more data handling policies for the data region based on the one or more data handling properties, wherein the data handling policies perform data transfers implemented by two software libraries, including a policy to at least push data to a next location if the data is written exactly once in the selected scope utilizing a first library pushing the data to other locations after a write access by copying the data and a second library pulling the data from the location where the data was last updated on a read access; and
optimizing, by the compiler, the application by selecting one or memory locations in which to store the data region in accordance with the determined one or more data handling properties and one or more policies for the data region.
|