PreviousUpNext

15.3.150  src/lib/compiler/back/low/regor/register-spilling-per-xxx-heuristic.api

# 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.lib

stipulate
    package cig =  codetemp_interference_graph;                                 # codetemp_interference_graph   is from   src/lib/compiler/back/low/regor/codetemp-interference-graph.pkg
herein

    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;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext