PreviousUpNext

15.3.147  src/lib/compiler/back/low/regor/partition-machcode-controlflow-graph-and-allot-registers-by-partition.api

# partition-machcode-controlflow-graph-and-allot-registers-by-partition.api                             "regor" is a contraction of "register allocator"
#
# This appears to be stillborn code;
# our api is referenced only as a generic arg in
#
#     src/lib/compiler/back/low/regor/solve-register-allocation-problems-by-recursive-partition-g.pkg
#
# which in turn is nowhere invoked.

# Compiled by:
#     src/lib/compiler/back/low/lib/lowhalf.lib


stipulate
    package rkj =  registerkinds_junk;                                                  # registerkinds_junk            is from   src/lib/compiler/back/low/code/registerkinds-junk.pkg
herein
    # This api is implemented (only) in the (broken) package partition_machcode_controlflow_graph_and_allot_registers_by_partition_g in:
    #
    #     src/lib/compiler/back/low/regor/partition-machcode-controlflow-graph-and-allot-registers-by-partition-g.pkg
    #
    api Partition_Machcode_Controlflow_Graph_And_Allot_Registers_By_Partition {
        #
        package rgk: Registerkinds;                                                     # Registerkinds                 is from   src/lib/compiler/back/low/code/registerkinds.api

        Machcode_Controlflow_Graph;                                                     # Abstract view of whatever controlflow graph implementation is in use --
                                                                                        # currently always src/lib/compiler/back/low/mcg/machcode-controlflow-graph-g.pkg

        number_of_basic_blocks_in:  Machcode_Controlflow_Graph -> Int;                  # Number of basic blocks in the Machcode_Controlflow_Graph:

        # Partition an mcg into
        # smaller subgraphs and do
        # register-allocation on
        # them individually:
        #
        partition_machcode_controlflow_graph_and_allot_registers_by_partition
            :
            Machcode_Controlflow_Graph
            ->
            rkj::Registerkind
            ->
            (Machcode_Controlflow_Graph -> Machcode_Controlflow_Graph)                  # Register allocator to use on each partition.
            ->
            Void;
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext