1 / 24

BDDs for Points-to Analysis.

Outline.. Introduction: What is points-to analysis? What is a BDD?Motivation: Why to use BDDs for points-to analysis?Methodology: How to use BDDs for points-to analysis?Optimizations: ROBDDs, ZBDDs.Related work: Berndl, Whaley, Zhu, Lhotak.. Introduction.. Pointer Analysis is the mechanism of st

velika
Download Presentation

BDDs for Points-to Analysis.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. BDDs for Points-to Analysis. Rupesh Nasre. May 02, 2008.

    2. Outline. Introduction: What is points-to analysis? What is a BDD? Motivation: Why to use BDDs for points-to analysis? Methodology: How to use BDDs for points-to analysis? Optimizations: ROBDDs, ZBDDs. Related work: Berndl, Whaley, Zhu, Lhotak.

    3. Introduction. Pointer Analysis is the mechanism of statically finding out possible run time values of pointers. fun(p) || fun(q) if (p == q) { fun(p); }

    4. Introduction. A Binary Decision Diagram is a rooted directed acyclic graph consisting of decision nodes and two terminal... A picture is worth a thousand words.

    5. Introduction. Binary Decision Tree. Truth Table. ROBDD.

    6. Motivation. What is the problem? Space constraint: Points-to analysis produces huge number of points-to pairs. Scalability constraint: Context-sensitive analysis produces exponential number of contexts (of the order of 10^10).

    7. Motivation. Why consider BDDs? BDDs reduce storage requirements. Used successfully in Model Checking, Circuit Design, Verification.

    8. Methodology.

    9. Methodology.

    10. Methodology.

    11. Methodology.

    12. Methodology.

    13. Methodology.

    14. Methodology.

    15. Methodology. Points-to set = {<p, X>, <q, Y>}. Edge set = {<q, p>}

    16. Methodology.

    17. Methodology.

    18. Optimizations. Reduced Ordered BDDs (we saw these so far). Merge identical nodes. Remove nodes whose high- and low-edges point to the same node. Zero Ordered BDDs. Merge identical nodes. Node p whose high-edge points to 0 and whose low-edge points to q is removed and edges leading to p are redirected to q.

    19. Optimizations.

    20. Related Work. Points-to analysis using BDDs, Berndl et al, PLDI 2003. Symbolic Pointer Analysis Revisited, Zhu + Calman, PLDI 2004. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams, Whaley + Lam, PLDI 2004. Using ZBDDs in Points-to Analysis, Lhotak et al, LCPC 2007.

    21. Related Work. Points-to analysis using BDDs, Berndl et al, PLDI 2003. BDD-based algorithm for subset-based points-to analysis. systematic variable ordering. incremental propagation of points-to sets. specifying the analysis using high-level BDD operations, to make the implementation efficient in time and space.

    22. Related Work. Symbolic Pointer Analysis Revisited, Zhu + Calman, PLDI 2004. symbolic transfer functions in a single pass. common CI/CS symbolic analysis framework for BDD-based pointer analysis. symbolic invocation graph. leveraging of symbolic invocation graph to compute superposition of states of a procedure under different contexts.

    23. Related Work. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams, Whaley + Lam, PLDI 2004. scalable cloning-based context-sensitive points-to analysis using BDDs. Datalog as a high-level language for BDD-based program analyses. context-sensitive queries and other analyses, like memory leak detection, side-effect analysis, type analysis.

    24. Related Work. Using ZBDDs in Points-to Analysis, Lhotak et al, LCPC 2007. represent points-to pairs as a ZBDD. give algorithm to compute relational product (join) of relations. present a ZBDD variation of the BDD-based points-to analysis of Berndl et al. compare Berndl et al's analysis, Whaley and Lam's bddbddb and Lhotak and Hendren's paddle framework. give relation-density metric that predicts whether a relation will be represented more compactly by a BDD or by a ZBDD.

    25. BDDs for Points-to Analysis. Rupesh Nasre. May 02, 2008.

More Related