All graph-coloring register allocators rely on heuristics to arrive at a "good" answer to the NP-complete problem of allocation, resulting in suboptimal code. We look at a post-pass to the allocator which removes unnecessary spill code by finding places where the availability of an unused register allows us to "promote" a spill to a register. We explain and correct an error in Briggs' code that sometimes inserts an excessive and unnecessary number of spill instructions. The fix to this bug has an insignificant impact on the runtime of the compiler and never causes a degradation in runtime of the code produced. We suggest minimizing the impact of the spill code through the use of a small separate memory dedicated to spills and under the excl...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Global register allocation and spilling is commonly performed by solving a graph coloring problem. I...
An important function of any register allocator is to target registers so as to eliminate copy instr...
We present a graph coloring register allocator de-signed to minimize the number of dynamic memory re...
Abstract--Register allocation may be viewed as a graph coloring problem. Each node in the graph stan...
Register allocation is a vital stage in compiler optimization. It greatly impacts the effectiveness ...
Global register allocation plays a major role in determining the efficacy of an optimizing compiler....
The time spent on register allocation must be reasonable compared to other global optimizations in a...
Register allocation by coloring an interference graph is a common technique. We introduce the weight...
We describe an improvement to a heuristic introduced by Chaitin for use in graph coloring register a...
This report deals with the problem of choosing which variables to spill during the register allocati...
Loops are the main source of parallelism in applications. The issue of finding an optimal register a...
Loops are the main source of parallelism in applications. The issue of finding an optimal register a...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Global register allocation and spilling is commonly performed by solving a graph coloring problem. I...
An important function of any register allocator is to target registers so as to eliminate copy instr...
We present a graph coloring register allocator de-signed to minimize the number of dynamic memory re...
Abstract--Register allocation may be viewed as a graph coloring problem. Each node in the graph stan...
Register allocation is a vital stage in compiler optimization. It greatly impacts the effectiveness ...
Global register allocation plays a major role in determining the efficacy of an optimizing compiler....
The time spent on register allocation must be reasonable compared to other global optimizations in a...
Register allocation by coloring an interference graph is a common technique. We introduce the weight...
We describe an improvement to a heuristic introduced by Chaitin for use in graph coloring register a...
This report deals with the problem of choosing which variables to spill during the register allocati...
Loops are the main source of parallelism in applications. The issue of finding an optimal register a...
Loops are the main source of parallelism in applications. The issue of finding an optimal register a...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...
Graph coloring and linear scan are two appealing techniques for register allocation as the underlyin...