...
首页> 外文期刊>ACM Transactions on Programming Languages and Systems >A Practical and Fast Iterative Algorithm for φ-Function Computation Using DJ Graphs
【24h】

A Practical and Fast Iterative Algorithm for φ-Function Computation Using DJ Graphs

机译:利用DJ图进行φ函数计算的实用快速迭代算法

获取原文
获取原文并翻译 | 示例
           

摘要

We present a new and practical method of computing φ-function for all variables in a function for Static Single Assignment (SSA) form. The new algorithm is based on computing the Merge set of each node in the control flow graph of a function (a node here represents a basic block and the terms will be used interchangeably). Merge set of a node n is the set of nodes N, where φ-functions may need to be placed if variables are defined in n. It is not necessary for n to have a definition of a variable in it. Thus, the merge set of n is dictated by the underlying structure of the CFG. The new method presented here precomputes the merge set of every node in the CFG using an iterative approach. Later, these merge sets are used to carry out the actual φ-function placement. The advantages are in examples where dense definitions of variables are present (i.e., original definitions of variables―user defined or otherwise, in a majority of basic blocks). Our experience with SSA in the High Level Optimizer (optimization levels +O3/+O4) shows that most examples from the Spec2000 benchmark suite require a high percentage of basic blocks to have their φ points computed. Previous methods of computing the same relied on the dominance frontier (DF) concept, first introduced by Cytron et al. The method presented in this paper gives a new effective iterative solution to the problem. Also, in cases, where the control flow graph does not change, our method does not require any additional computation for new definitions introduced as part of optimizations. We present implementation details with results from Spec2000 benchmarks. Our algorithm runs faster than the existing methods used.
机译:我们提出了一种新的实用的φ函数计算方法,该函数针对静态单赋值(SSA)形式的函数中的所有变量。新算法基于计算函数的控制流程图中每个节点的合并集(此处的节点代表一个基本块,并且这些术语将互换使用)。节点n的合并集是节点N的集合,如果在n中定义了变量,则可能需要放置φ函数。 n不必在其中定义变量。因此,n的合并集由CFG的基础结构决定。此处介绍的新方法使用迭代方法预先计算CFG中每个节点的合并集。后来,这些合并集用于执行实际的φ函数放置。优点是在存在密集的变量定义的示例中(即,在大多数基本块中都是变量的原始定义-用户定义或以其他方式定义)。我们在高级优化器(优化级别+ O3 / + O4)中使用SSA的经验表明,Spec2000基准套件中的大多数示例都需要很高百分比的基本块来计算其φ点。以前计算该方法的方法依赖于Cytron等人首先提出的优势边界(DF)概念。本文提出的方法为该问题提供了一种新的有效迭代解决方案。同样,在控制流程图不变的情况下,我们的方法不需要为优化引入的新定义进行任何额外的计算。我们用Spec2000基准测试的结果介绍实施细节。我们的算法比现有的方法运行速度更快。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号