Evaluating the Benefits of Context-Sensitive Points-to Analysis Using a BDD-Based Implementation
We present PADDLE, a framework of BDD-based context-sensitive points-to and call graph analyses for Java, as well as client analyses that use their results. PADDLE supports several variations of context-sensitive analyses, including call site strings and object sensitivity, and context-sensitively specializes both pointer variables and the heap abstraction. We empirically evaluate the precision of these context-sensitive analyses on significant Java programs. We find that that object-sensitive analyses are more precise than comparable variations of the other approaches, and that specializing the heap abstraction improves precision more than extending the length of context strings.
points-to analysis java design experimentation measurement interprocedural program analysis context sensitivity binary decision diagrams call graph construction cast safety analysis