Publication | Open Access
The priority-based coloring approach to register allocation
333
Citations
13
References
1990
Year
EngineeringDynamic Resource AllocationCompiler TechnologyComputer ArchitectureSoftware EngineeringComputational ComplexitySoftware AnalysisGraph ColoringCompilersCombinatorial OptimizationParallel ComputingMemory ManagementGlobal Register AllocationPriority-based Coloring ApproachParallelizing CompilerCompiler SupportComputer EngineeringScheduling (Computing)Computer ScienceProgram OptimizationOptimizing CompilerProgram AnalysisFormal MethodsRegister AllocationParallel Programming
Global register allocation plays a major role in determining the efficacy of an optimizing compiler. Graph coloring has been used as the central paradigm for register allocation in modern compilers. A straightforward coloring approach can suffer from several shortcomings. These shortcomings are addressed in this paper by coloring the graph using a priority ordering. A natural method for dealing with the spilling emerges from this approach. The detailed algorithms for a priority-based coloring approach are presented and are contrasted with the basic graph-coloring algorithm. Various extensions to the basic algorithms are also presented. Measurements of large programs are used to determine the effectiveness of the algorithm and its extensions, as well as the causes of an imperfect allocation. Running time of the allocator and the impact of heuristics aimed at reducing that time are also measured.
| Year | Citations | |
|---|---|---|
Page 1
Page 1