vix.ing · top · new · best · stats · spec

On the Complexity of Register Coalescing

2007/03/01 by Florent Bouchez, Alain Darte, Fabrice Rastello · 1 citation
Computer Science · #Parallel Computing and Optimization Techniques #Optimization and Search Problems #Logic, programming, and type systems #Computer science #Heuristics #Register allocation #Graph #Theoretical computer science #Graph coloring #Parallel computing #Programming language

paper · doi:10.1109/cgo.2007.26

openalex publication_date 2007/03/01 · openalex created_date 2025/10/10 · openalex updated_date 2026/08/05

Abstract

Memory transfers are becoming more important to optimize, for both performance and power consumption. With this goal in mind, new register allocation schemes are developed, which revisit not only the spilling problem but also the coalescing problem. Indeed, a more aggressive strategy to avoid load/store instructions may increase the constraints to suppress (coalesce) move instructions. This paper is devoted to the complexity of the coalescing phase, in particular in the light of recent developments on the SSA form. We distinguish several optimizations that occur in coalescing heuristics: a) aggressive coalescing removes as many moves as possible, regardless of the colorability of the resulting interference graph; b) conservative coalescing removes as many moves as possible while keeping the colorability of the graph; c) incremental conservative coalescing removes one particular move while keeping the colorability of the graph; d) optimistic coalescing coalesces moves aggressively, then gives up about as few moves as possible so that the graph becomes colorable again. We almost completely classify the NP-completeness of these problems, discussing also on the structure of the interference graph: arbitrary, chordal, or k-colorable in a greedy fashion. We believe that such a study is a necessary step for designing new coalescing strategies

Citations

Cited by