A Simple Mechanism for Improving the Accuracy and Efficiency of Instruction-Level Disambiguation

Compilers typically treat source-level and instruction-level issues as independent phases of compilation so that much of the information that might be available to source-level systems of transformations about the semantics of the high-level language and its implementation, as well as the algorithm in some cases, is generally “lost in the translation”, making it unavailable to instruction-level systems of transformations. While this separation of concerns reduces the complexity of the compiler and facilitates porting the compiler to different source/target combinations, it also forces the costly recomputation at the instruction-level of much of the information that was already available to the higher level, and in many cases introduces spurious dependencies that can not be eliminated by instruction-level analysis alone.

[1]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[2]  Alexandru Nicolau,et al.  A language for conveying the aliasing properties of dynamic, pointer-based data structures , 1994, Proceedings of 8th International Parallel Processing Symposium.

[3]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[4]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[5]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

[6]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

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

[8]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[9]  Alexandru Nicolau,et al.  Mutation Scheduling: A Unified Approach to Compiling for Fine-Grain Parallelism , 1994, LCPC.

[10]  Alexandru Nicolau,et al.  An Efficient Global Resource Constrained Technique for Exploiting Instruction Level Parallelism , 1992, ICPP.

[11]  Constantine D. Polychronopoulos,et al.  Symbolic Program Analysis and Optimization for Parallelizing Compilers , 1992, LCPC.

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

[13]  V. A. Barker Sparse Matrix Techniques , 1977 .

[14]  Alexandru Nicolau,et al.  Abstractions for recursive pointer data structures: improving the analysis and transformation of imperative programs , 1992, PLDI '92.

[15]  Barbara G. Ryder,et al.  A safe approximate algorithm for interprocedural aliasing , 1992, PLDI '92.

[16]  Joannes M. Lucassen Types and Effects Towards the Integration of Functional and Imperative Programming. , 1987 .

[17]  John E. Howland,et al.  Computer graphics , 1990, IEEE Potentials.

[18]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[19]  Alexandru Nicolau,et al.  VISTA: The Visual Interface for Scheduling Transformations and Analysis , 1993, LCPC.

[20]  Alexandru Nicolau,et al.  Parallelizing Programs with Recursive Data Structures , 1989, IEEE Trans. Parallel Distributed Syst..