Article ID Journal Published Year Pages File Type
551362 Information and Software Technology 2011 16 Pages PDF
Abstract

ContextPointer analysis is an important building block of optimizing compilers and program analyzers for C language. Various methods with precision and performance trade-offs have been proposed. Among them, cycle elimination has been successfully used to improve the scalability of context-insensitive pointer analyses without losing any precision.ObjectiveIn this article, we present a new method on context-sensitive pointer analysis with an effective application of cycle elimination.MethodTo obtain similar benefits of cycle elimination for context-sensitive analysis, we propose a novel constraint-based formulation that uses sets of contexts as annotations. Our method is not based on binary decision diagram (BDD). Instead, we directly use invocation graphs to represent context sets and apply a hash-consing technique to deal with the exponential blow-up of contexts.ResultExperimental results on C programs ranging from 20,000 to 290,000 lines show that applying cycle elimination to our new formulation results in 4.5 ×speedup over the previous BDD-based approach.ConclusionWe showed that cycle elimination is an effective method for improving the scalability of context-sensitive pointer analysis.

Related Topics
Physical Sciences and Engineering Computer Science Human-Computer Interaction
Authors
, ,