1994 · 48 citations · 28 references
ComputingComputer EngineeringComputer ScienceCompilersParallel ComputingProgramming LanguagesControl-flow AnalysisData ParallelismData-flow AnalysisInstruction SchedulingInstruction-level ParallelismRegister AllocationData Flow PatternsDependence AnalysisGlobal Register AllocationProgram Dependence AnalysisProgram Dependence GraphsProgram Dependency Graph AnalysisProgram RepresentationRegister Assignment
This paper describes RAP, a Register Allocator that allocates registers over the Program Dependence Graph (PDG) representation of a program in a hierarchical manner. The PDG program representation has been used successfully for scalar optimizations, the detection and improvement of parallelism for vector machines, multiple processor machines, and machines that exhibit instruction level parallelism, as well as debugging, the integration of different versions of a program, and translation of imperative programs for data flow machines. By basing register allocation on the PDG, the register allocation phase may be more easily integrated and intertwined with other optimization analyses and transformations. In addition, the advantages of a hierarchical approach to global register allocation can be attained without constructing an additional structure used solely for register allocation. Our experimental results have shown that on average, code allocated registers via RAP executed 2.7% faster than code allocated registers via a standard global register allocator.
28
Mark Weiser · IEEE Transactions on Software Engineering · 1984 · 3.2K citations
Hiralal Agrawal, J.R. Horgan · 1990 · 879 citations · Full text
Register allocation & spilling via graph coloring
Gregory J. Chaitin · ACM SIGPLAN Notices · 1982 · 767 citations · Full text
Register allocation via coloring
Gregory J. Chaitin, Marc Auslander, Ashok K. Chandra et al. · Computer Languages · 1981 · 731 citations