A decoupled local memory allocator
Transactions on Architecture and Code Optimization
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 
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.; 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 ...
Ozturk O.; Kandemir, M.; Irwin, M.J. (2009)The memory system presents one of the critical challenges in embedded system design and optimization. This ismainly due to the ever-increasing code complexity of embedded applications and the exponential increase seen in ...