TY - GEN
T1 - Practical and accurate low-level pointer analysis
AU - Guo, Bolei
AU - Bridges, Matthew J.
AU - Triantafyllis, Spyridon
AU - Ottoni, Guilherme
AU - Raman, Easwaran
AU - August, David I.
PY - 2005
Y1 - 2005
N2 - Pointer analysis is traditionally performed once, early in the compilation process, upon an intermediate representation (IR) with source-code semantics. However, performing pointer analysis only once at this level imposes a phase-ordering constraint, causing alias information to become stale after subsequent code transformations. Moreover, high-level pointer analysis cannot be used at link time or run time, where the source code is unavailable. This paper advocates performing pointer analysis on a low-level intermediate representation. We present the first context-sensitive and partially flow-sensitive point s-to analysis designed to operate at the assembly level. As we will demonstrate, low-level pointer analysis can be as accurate as high-level analysis. Additionally, our low-level pointer analysis also enables a quantitative comparison of propagating high-level pointer analysis results through subsequent code transformations, versus recomputing them at the low level. We show that, for C programs, the former practice is considerably less accurate than the latter.
AB - Pointer analysis is traditionally performed once, early in the compilation process, upon an intermediate representation (IR) with source-code semantics. However, performing pointer analysis only once at this level imposes a phase-ordering constraint, causing alias information to become stale after subsequent code transformations. Moreover, high-level pointer analysis cannot be used at link time or run time, where the source code is unavailable. This paper advocates performing pointer analysis on a low-level intermediate representation. We present the first context-sensitive and partially flow-sensitive point s-to analysis designed to operate at the assembly level. As we will demonstrate, low-level pointer analysis can be as accurate as high-level analysis. Additionally, our low-level pointer analysis also enables a quantitative comparison of propagating high-level pointer analysis results through subsequent code transformations, versus recomputing them at the low level. We show that, for C programs, the former practice is considerably less accurate than the latter.
UR - http://www.scopus.com/inward/record.url?scp=33646750493&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=33646750493&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:33646750493
SN - 076952298X
SN - 9780769522982
T3 - Proceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005
SP - 291
EP - 302
BT - Proceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005
ER -