Data Flow and Dependence Analysis for Instruction Level Parallelism

Instruction-level parallel architectures present their own set of opportunities and needs, requiring the development of a new class of compiler optimization techniques. Dynamic single assignment is presented as a parallel program representation that permits programs, with cyclic control flow graphs, to be expressed in their maximally parallel form (i.e., with a minimal number of dependence arcs). Also, a data flow analysis technique is outlined that extends to subscripted references the full power of conventional techniques that normally only work with scalar variables. The focus is on the representation and analysis of programs containing subscripted references with an emphasis on innermost loops whose bodies contain arbitrary, acyclic control flow.

[1]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[2]  Mike Johnson,et al.  Superscalar microprocessor design , 1991, Prentice Hall series in innovative technology.

[3]  Janusz S. Kowalik High-Speed Computation , 1984 .

[4]  Arvind,et al.  The U-Interpreter , 1982, Computer.

[5]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[6]  L. G. Tesler,et al.  A language design for concurrent processes , 1899, AFIPS Spring Joint Computing Conference.

[7]  B. Ramakrishna Rau,et al.  The Cydra 5 departmental supercomputer: design philosophies, decisions, and trade-offs , 1989, Computer.

[8]  F. H. Mcmahon,et al.  The Livermore Fortran Kernels: A Computer Test of the Numerical Performance Range , 1986 .

[9]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[10]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[11]  James C. Dehnert,et al.  Overlapped loop support in the Cydra 5 , 1989, ASPLOS 1989.

[12]  Keshav Pingali,et al.  Dependence flow graphs: an algebraic approach to program dependencies , 1991, POPL '91.

[13]  John R. Ellis,et al.  Bulldog: a compiler for vliw architectures (parallel computing, reduced-instruction-set, trace scheduling, scientific) , 1985 .

[14]  John R. Ellis,et al.  Bulldog: A Compiler for VLIW Architectures , 1986 .

[15]  Mark N. Wegman,et al.  An efficient method of computing static single assignment form , 1989, POPL '89.

[16]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS 1987.

[17]  K. R. Traub,et al.  A COMPILER FOR THE MIT TAGGED-TOKEN DATAFLOW ARCHITECTURE , 1986 .