@inproceedings{2fe4edfe5c6f444cb94105a25cf8876b,
title = "Transparent pointer compression for linked data structures",
abstract = "64-bit address spaces are increasingly important for modern applications, but they come at a price: pointers use twice as much memory, reducing the effective cache capacity and memory bandwidth of the system (compared to 32-bit ad- dress spaces). This paper presents a sophisticated, automatic transformation that shrinks pointers from 64-bits to 32-bits. The approach is {"}macroscopic,{"} i.e., it operates on an entire logical data structure in the program at a time. It allows an individual data structure instance or even a subset thereof to grow up to 232 bytes in size, and can compress pointers to some data structures but not others. Together, these properties allow efficient usage of a large (64-bit) ad- dress space. We also describe (but have not implemented) a dynamic version of the technique that can transparently expand the pointers in an individual data structure if it exceeds the 4GB limit. For a collection of pointer-intensive benchmarks, we show that the transformation reduces peak heap sizes substantially by (20% to 2x) for several of these benchmarks, and improves overall performance significantly in some cases.",
keywords = "Cache, Data layout, Pointer compression, Recursive data structure, Static analysis",
author = "Chris Lattner and Adve, {Vikram S.}",
note = "Publisher Copyright: Copyright {\textcopyright} 2005 ACM.; 3rd ACM SIGPLAN Workshop on Memory Systems Performance, MSP 2005 ; Conference date: 12-06-2005",
year = "2005",
month = jun,
day = "12",
doi = "10.1145/1111583.1111587",
language = "English (US)",
series = "Proceedings of the 3rd 2005 ACM SIGPLAN Workshop on Memory Systems Performance, MSP 2005",
publisher = "Association for Computing Machinery",
pages = "24--35",
booktitle = "Proceedings of the 3rd 2005 ACM SIGPLAN Workshop on Memory Systems Performance, MSP 2005",
address = "United States",
}