Index of values

A
add [Register]

add r s returns a set containing all elements of s, plus r.

add_color [Coloring]

add_color r s c affects the pseudo-register r to the real register s in c

add_interference [Inter_graph]

add an interference edge between two register

add_preference [Inter_graph]

add a preference edge between two register

add_reg [Inter_graph]

add a register as a node of the graph

add_spill [Coloring]

add_spill r c decides to spill the pseudo-register r in c

C
choose [Inter_graph]

choose g returns some node of g (pseudo or real register)

choose [Register]

Return one element of the given set, or raise Not_found if the set is empty.

copy_color [Coloring]

copy_color r s c copies the decision made for r in c to s

D
degree [Inter_graph]
E
empty [Inter_graph]
empty [Coloring]

empty coloring

empty [Register]

The empty set.

F
find [Coloring]

find r c finds the decision associated to r in the coloring c

find_preference [Inter_graph]

find_preference p g returns a preference edge of g satisfying a predicate p, at least one of the nodes is assumed to be a pseudo-register, not a real register

find_register [Inter_graph]

find_register p g returns a pseudo-register of g satisfying a predicate p

fold [Register]

fold f s a computes (f xN ... (f x2 (f x1 a))...), where x1 ... xN are the elements of s.

from_int [Register]
from_string [Register]
I
is_empty [Inter_graph]
is_empty [Register]

Test whether a set is empty or not.

is_real [Register]

is_real r return true iff r is a real register

iter [Register]

iter f s applies f in turn to all elements of s.

J
join [Register]

join r s takes two pseudo-registers r and s and produces a pseudo-register joining them

join_nodes [Inter_graph]

join_nodes g a b joins the two nodes a and b into a new node a|b

N
nb_regs [Register]

number of available real registers

neighbour [Inter_graph]

neighbour g a b returns true iff there is a interference edge between a and b in g

neighbours [Inter_graph]

neighbours g a returns the list of nodes of g that interfers with a

P
prefer_out [Inter_graph]

prefer_out g r returns true iff there is at least one preference edge comming out r in g

print_coloring [Coloring]
print_dec [Coloring]
print_graph [Inter_graph]

opens a Firefox window with a graphical representation of the graph

print_graph_coloring [Inter_graph]

same as Inter_graph.print_graph, but with a (partial) coloring

print_reg [Register]

printing function for registers

print_riscv [Riscv]

printing function for a RISC-V instruction

R
real [Register]

real r return the real register contained in the join

real_regs [Register]

real_regs () returns the set of real registers according to the number of available real registers

remove [Register]

remove r s returns a set containing all elements of s, except r.

remove_preferences [Inter_graph]

remove all preference edges comming out a register

remove_reg [Inter_graph]

remove a register of the graph, removing all edges comming out this register

S
s [Riscv_parser]
scan [Riscv_lexer]
set_nb_regs [Register]

set the number of real registers that can be allocated

sp [Register]

MIPS register $sp

T
temp0 [Register]

reserved register to handle spilled pseudo-registers

temp1 [Register]

reserved register to handle spilled pseudo-registers

to_color [Register]
to_dot [Register]
to_string [Register]