The table below contains several examples of mira and ford specification
files, as well as the source of the C functions that they describe. All
the programs used are available in the bottom of the page. All the outputs
were generated by a graph coloring version of the usage based counter
register allocator. A description of this register allocator can be
found in the Dragon's Book, page 541. Most of the programs can be
compiled with the 12 registers available in the StrongARM architecture, a
noticeable exception been the main function of ManyParameters.c.
|
perm
An implementation of a generator of permutations that uses a list to
keep track of permutations already produced, due to
Paul Griffiths.
|
|
hanoi
An implementation of the puzzle "Towers of Hanoi", due to
Paul Griffiths.
|
|
Base1Sum
A simple program that sums up the characters given in the command line.
|
|
Branches
A program containing many branches. The path taken will depend
on the name of the executable file.
|
|
ManyParameters
The main function of this program contain a large number of
live variables, and its compilation is likely to produce many spills.
|
|
Maze solver
Pointer intensive maze solver program.
|
|
Usenix Benchmark
This benchmarks contains some C programs that put high register pressure on the allocator.
|
|
Stanford Benchmark
This is a set of eight small files implemented in the Stanford University. They
contain well know algorithms such as quicksort and a solution to the
queen's problem. They are useful to test recursive calls, array indexing and
input/output operations.
|