# register-spilling-per-xxx-heuristic.api
#
# Api for the various register spilling heuristics.
#
# This api is implemented in:
#
src/lib/compiler/back/low/regor/register-spilling-per-improved-chow-hennessy-heuristic-g.pkg#
src/lib/compiler/back/low/regor/register-spilling-per-chow-hennessy-heuristic.pkg#
src/lib/compiler/back/low/regor/register-spilling-per-improved-chaitin-heuristic-g.pkg#
src/lib/compiler/back/low/regor/register-spilling-per-chaitin-heuristic.pkg# Compiled by:
#
src/lib/compiler/back/low/lib/lowhalf.libstipulate
package cig = codetemp_interference_graph; # codetemp_interference_graph is from
src/lib/compiler/back/low/regor/codetemp-interference-graph.pkgherein
api Register_Spilling_Per_Xxx_Heuristic {
#
exception NO_CANDIDATE;
mode: cig::Mode;
init: Void -> Void;
choose_spill_node
:
{ codetemp_interference_graph: cig::Codetemp_Interference_Graph,
spill_worklist: List( cig::Node ),
has_been_spilled: Int -> Bool
}
->
{ spill_worklist: List( cig::Node ),
node: Null_Or( cig::Node ),
cost: Float
};
};
end;