A decoupled local memory allocator
Transactions on Architecture and Code Optimization
MetadataShow full item record
Please cite this item using this persistent URLhttp://hdl.handle.net/11693/21123
Compilers use software-controlled local memories to provide fast, predictable, and power-efficient access to critical data. We show that the local memory allocation for straight-line, or linearized programs is equivalent to a weighted interval-graph coloring problem. This problem is new when allowing a color interval to "wrap around," and we call it the submarine-building problem. This graph-theoretical decision problem differs slightly from the classical ship-building problem, and exhibits very interesting and unusual complexity properties. We demonstrate that the submarine-building problem is NP-complete, while it is solvable in linear time for not-so-proper interval graphs, an extension of the the class of proper interval graphs. We propose a clustering heuristic to approximate any interval graph into a not-so-proper interval graph, decoupling spill code generation from local memory assignment. We apply this heuristic to a large number of randomly generated interval graphs reproducing the statistical features of standard local memory allocation benchmarks, comparing with state-of-the-art heuristics. © 2013 ACM.
- Research Paper 7144
Showing items related by title, author, creator and subject.
Michaelian, K. (2012)Clark and Chalmers (1998) claim that an external resource satisfying the following criteria counts as a memory: (1) the agent has constant access to the resource; (2) the information in the resource is directly available; ...
Ozturk O. (2011)Memory is a key parameter in embedded systems since both code complexity of embedded applications and amount of data they process are increasing. While it is true that the memory capacity of embedded systems is continuously ...
Ozturk O.; Kandemir, M.; Irwin, M.J. (2009)The memory system presents one of the critical challenges in embedded system design and optimization. This is mainly due to the ever-increasing code complexity of embedded applications and the exponential increase seen in ...