ACM Transactions on Programming Languages and Systems · 2004 · 51 citations · 16 references
Cluster ComputingEngineeringOptimistic CoalescingVerificationComputer ArchitectureNetwork AnalysisOptimistic RegisterMemory Model (Programming)Formal VerificationData ConsistencyData ScienceStructural Graph TheoryParallel ComputingCombinatorial OptimizationComputer EngineeringComputer ScienceGraph AlgorithmNetwork ScienceGraph TheoryNetwork AlgorithmDistributed ComputingConcurrency TheoryFormal MethodsParallel ProgrammingGraph-coloring Register AllocatorsInterference GraphExtremal Graph Theory
Graph-coloring register allocators eliminate copies by coalescing the source and target nodes of a copy if they do not interfere in the interference graph. Coalescing, however, can be harmful to the colorability of the graph because it tends to yield a graph with nodes of higher degrees. Unlike aggressive coalescing , which coalesces any pair of noninterfering copy-related nodes, conservative coalescing or iterated coalescing perform safe coalescing that preserves the colorability. Unfortunately, these heuristics give up coalescing too early, losing many opportunities for coalescing that would turn out to be safe. Moreover, they ignore the fact that coalescing may even improve the colorability of the graph by reducing the degree of neighbor nodes that are interfering with both the source and target nodes being coalesced. This article proposes a new heuristic called optimistic coalescing which optimistically performs aggressive coalescing, thus exploiting the positive impact of coalescing aggressively, but when a coalesced node is to be spilled, it is split back into separate nodes. Since there is a better chance of coloring one of those splits, we can reduce the overall spill amount.
16
Monica S. Lam · ACM SIGPLAN Notices · 2004 · 876 citations
Register allocation & spilling via graph coloring
Gregory J. Chaitin · ACM SIGPLAN Notices · 1982 · 758 citations · Full text
Register allocation & spilling via graph coloring
Gregory J. Chaitin · 1982 · 661 citations