期刊文献+

基于支配边界逆转的多变量Φ函数摆放算法

A Multi-Variable Φ-Function Placement Algorithm Based on Dominator Frontier Inverse
下载PDF
导出
摘要 基于Cytron和Cooper等人的研究成果,提出了一个新的概念——支配边界逆转(dominatorfrontier inverse,DFI)来同时为多个变量摆放Φ函数.如果结点y以结点x为支配边界,则结点x就是结点y支配边界逆转.支配边界逆转存在一个很重要的属性,DFI(x)中的结点在支配树上的高度一定不小于x的高度.对DFI(x)中任何结点y,如果存在对于变量v的定义,则结点x上就需要插入变量v的Φ函数.由于采用PHI(x)表示在结点x上需要插入Φ函数的变量集合,实现过程中并不需要实际计算DFI结点集合.算法首先按照结点在支配树上的高度自底向上进行遍历,并逐层计算高度相同的交结点上摆放函数的变量集合PHI的不动点.算法的主要优点是可以直接工作于支配树上,不需要额外的数据结构.C Specint 2000的测试结果表明该算法比Cytron原始的Φ函数摆放算法要快,并且与采用Cooper计算支配边界的算法相比,该算法对测试集中大部分程序也是有效的. Based on the work of Cytron and Cooper,we employ the concept of dominance frontier inverse(DFI) to present an iterative algorithm to simultaneously place -nodes for all variables of a function.The set DFI(x) is a set of the nodes N whose dominance frontier is x.The set DFI(x) has one important property: The nodes in the set DFI(x) must be the nodes whose level is no smaller than the level of x on the dominator tree.For each node y contained in the set DFI(x),the variables defined on node y should be placed on node x,and if there are -nodes only,the variables of Φ-nodes should also be placed on x.In fact,the DFI set needn't be computed when placing Φ-nodes in the algorithm of this paper,because a variable set is adopted to hold the Φ-nodes.The algorithm firstly visits the dominator tree in a bottom-up traversal by levels,and then iteratively computes fixed point for the Φ-nodes sets on the join nodes with the same level.The innovation is that the algorithm can directly work on the dominator tree.And it merges the former two-step algorithm into one.Experimental results of the C Specint2000 show that this algorithm is much faster than Cytron's original algorithm,and is also comparable with Cytron's Φ-placement algorithm based on Cooper's DF algorithm.
出处 《计算机研究与发展》 EI CSCD 北大核心 2011年第2期346-352,共7页 Journal of Computer Research and Development
基金 国家"八六三"高技术研究发展计划基金项目(2006AA01Z408)
关键词 静态单赋值 支配边界 支配边界逆转 Φ结点 DJ图 static single assignment form dominance frontier dominance frontier inverse(DFI) Φ-node DJ graph
  • 相关文献

参考文献15

  • 1Wegman M, Zadeck K. Constant propagation with conditional branches [J].ACM Trans on Programming Languages and Systems, 1991, 13(2): 181-210. 被引量:1
  • 2吴萍,陈意云,张健.多线程程序数据竞争的静态检测[J].计算机研究与发展,2006,43(2):329-335. 被引量:21
  • 3Alpern B, Wegman M N, Zadeck F K. Detecting equality of variable in programs [C] //Proc of the 15th ACM Principles of Programming Languages Syposium. New York: ACM, 1988. 被引量:1
  • 4Wu Y, Horwitz S, Reps T. Detecting program components with equivalent behaviors [R]. Madison: University of Wisconsin, 1989. 被引量:1
  • 5Bik A J C, Kreitzer D L, Tian X M. A case study on compiler optimizations for the Intel? CoreTM 2 duo processor [J]. International Journal of Parallel Programming, 2008, 36(6): 571-591. 被引量:1
  • 6Novillo D. Tree SSA: A new optimization infrastructure for GCC [C] //Proc of the 2003 GCC Developers' Summit. Ottawa: Red Hat Ltd, 2003. 被引量:1
  • 7Chan S C, Gao G R, Chapman B, et al. Open64 compiler infrastructure for emerging multicore/manycore architecture all symposium tutorial [C] //Proc of the 22nd IEEE Int Symp on Parallel and Distributed Processing. Piscataway, NJ: IEEE, 2008. 被引量:1
  • 8Cytron R, Ferrante J, Rosen B, et al. Efficiently computing static single assignment form and control dependence graph [J]. ACM Trans on Programming Languages and Systems, 1991, 13(4): 452-490. 被引量:1
  • 9Sreedhar V, Gao G R. A linear time algorithm for placing φ- nodes [C] //Proc of the POPL'95. New York: ACM, 1995. 被引量:1
  • 10Bilardi G, Pingali K. Algorithms for computing the static single assignment form [J]. Journal of the ACM, 2003, 50 (3) : 375-425. 被引量:1

二级参考文献10

  • 1R. H. Netzer, B. P. Miller. What are race conditions? Some issues and formalizations. ACM Letters on Programming Languages and Systems, 1992, 1(1) : 74-88. 被引量:1
  • 2J.D. Choi, A. Loginov, V. Sarkar. Static datarace analysis for multithreaded object-oriented programs. IBM Research, Tech.Rep. : RC22146, 2001. 被引量:1
  • 3C. Praun, T. Gross. Static conflict analysis for multi-threaded object-oriented programs. In: Proc. ACM SIGPLAN 2003 Conf.Programming Language Design and Implementation. New York:ACM Press, 2003. 115-128. 被引量:1
  • 4Dawson Engler, Ken Ashcraft. RacerX: Effective, static detection of race conditions and deadlocks. ACM Symposium on Operating Systems Principles. New York: ACM Press, 2003.237-252. 被引量:1
  • 5J. Choi, K. Lee, A. Loginov, et al. Efficient and precise datarace detection for multithreaded object-oriented programs. In:Proc. ACM SIGPLAN 2002 Conf. Programming Language Design and Implementation. New York: ACM Press, 2002. 258- 269. 被引量:1
  • 6W. Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1992, 1 (4) : 323- 337. 被引量:1
  • 7Erik Ruf, Effective synchronization removal for Java. In: Proc.ACM SIGPLAN 2000 Conf. Programming Language Design and Implementation. New York: ACM Press, 2000. 208-218. 被引量:1
  • 8L, Lamport. Time, clocks, and the ordering of events in a distributed system, Communications of the ACM, 1978, 21 (7) :558-565. 被引量:1
  • 9Martin Rinard. The flex program analysis and compilation system,http://www.flex-compiler. csail. mit. edu, 1999-06-10. 被引量:1
  • 10.[EB/OL].http ://www. codeproject. com/,2004. 被引量:1

共引文献20

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部