谷歌浏览器插件
订阅小程序
在清言上使用

An Efficient Storeless Heap Abstraction Using SSA Form

msra(2008)

引用 23|浏览24
暂无评分
摘要
Precise, flow-sensitive analyses of pointer relationships often use a storeless heap abstraction. In this model, an object is represented us ing some abstraction of the expressions that refer to it (i.e. access paths). Many an alyses using such an abstraction are difficult to scale due to the size of the abstr action and due to flow sensitivity. Typically, an object is represented by the set of local variables pointing to it, together with additional predicates representing po inters from other objects. The focus of this paper is on the set of local variables, the co re of any such ab- straction. Taking advantage of certain properties of stati c single assignment (SSA) form, we propose an efficient data structure that allows much of the representation of an object at different points in the program to be shared. The transfer function for each statement, instead of creating an updated set, makes only local changes to the existing data structure representing the set. The key enabling properties of SSA form are that every point at which a variable is live is dominated by its defini- tion, and that the definitions of any set of simultaneously li ve variables are totally ordered according to the dominance relation. We represent the variables pointing to an object using a list ordered consistently with the dominance relation. Thus, when a variable is newly defined to point to the object, it need only be added to the head of the list. A back edge at which some variables cease to be live requires only dropping variables from the head of the list. We prove that the analysis using the proposed data structure computes the same result as a set-based analysis. We em- pirically show that the proposed data structure is more effic ient in both time and memory requirements than set implementations using hash tables and balanced trees.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要