| | |
Summary: Formal Verification of Coalescing
Graph-Coloring Register Allocation
Sandrine Blazy1
, Beno^it Robillard2
, and Andrew W. Appel3
1
IRISA - Universit´e Rennes 1
2
CEDRIC - ENSIIE
3
Princeton University
Abstract. Iterated Register Coalescing (IRC) is a widely used heuristic
for performing register allocation via graph coloring. Many implementa-
tions in existing compilers follow (more or less faithfully) the imperative
algorithm published in 1996. Several mistakes have been found in some
of these implementations.
In this paper, we present a formal verification (in Coq) of the whole
IRC algorithm. We detail a specification that can be used as a refer-
ence for IRC. We also define the theory of register-interference graphs;
we implement a purely functional version of the IRC algorithm, and we
|