Affiliation:
1. University of Illinois at Urbana-Champaign
Abstract
This paper presents an analysis technique and a novel program transformation that can enable powerful optimizations for entire linked data structures. The fully automatic transformation converts ordinary programs to use pool (aka region) allocation for heap-based data structures. The transformation relies on an efficient link-time interprocedural analysis to identify disjoint data structures in the program, to check whether these data structures are accessed in a type-safe manner, and to construct a Disjoint Data Structure Graph that describes the connectivity pattern within such structures. We present preliminary experimental results showing that the data structure analysis and pool allocation are effective for a set of pointer intensive programs in the Olden benchmark suite. To illustrate the optimizations that can be enabled by these techniques, we describe a novel pointer compression transformation and briefly discuss several other optimization possibilities for linked data structures.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Concurrent disjoint set union;Distributed Computing;2021-04-23
2. Randomized Concurrent Set Union and Generalized Wake-Up;Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing;2019-07-16
3. A Randomized Concurrent Algorithm for Disjoint Set Union;Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing;2016-07-25
4. A Compilation Framework for the Automatic Restructuring of Pointer-Linked Data Structures;High-Performance Scientific Computing;2012
5. Automatic Restructuring of Linked Data Structures;Languages and Compilers for Parallel Computing;2010