ACM SIGPLAN Notices · 1984 · 52 citations · 6 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingConcurrent ProgrammingControl-flow AnalysisData-flow AnalysisParallel Computer ArchitectureParallel Computing SystemsAutomatic ParallelizationData Dependence AnalysisDependence AnalysisLoop OptimizationLoop ParallelizationOptimal Code GenerationVector ProcessingVectorization
Parallel and vector machines are becoming increasingly important to many computation intensive applications. Effectively utilizing such architectures, particularly from sequential languages such as Fortran, has demanded increasingly sophisticated compilers. In general, a compiler needs to significantly reorder a program in order to generate code optimal for a specific architecture.Because DO loops typically control the execution of a number of statements, the order in which loops are executed can dramatically affect the performance of a machine on a particular section of code. In particular, loop interchange can often be used to enhance the performance of code on parallel or vector machines.Determining when loops may be safely and profitably interchanged requires a study of the data dependences in the program. This work discusses specific applications of that theory to loop interchange. This theory is described as it has been implemented in PFC (Parallel Fortran Converter) -- a program which attempts to uncover operations in sequential Fortran code that may be safely rewritten as vector operations.
6
Depth-first search and linear graph algorithms
Robert E. Tarjan · 1971 · 655 citations
Dependence graphs and compiler optimizations
David J. Kuck, Robert H. Kuhn, David Padua et al. · 1981 · 652 citations · Full text
Conversion of control dependence to data dependence
John R. Allen, Ken Kennedy, Carrie Porterfield et al. · 1983 · 605 citations