PreviousUpNext

15.3.133  src/lib/compiler/back/low/mcg/compile-register-moves-phase.api

## compile-register-moves-phase.api
#
# During early code generation we take advantage of a
# parallel-moves pseudo-operation which copies the
# contents of N registers to N other registers,
# conceptually in parallel.
#
# Here we define the api to the package which actually
# generates a legal sequence of move instructions to
# implement one such set of register moves.

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

stipulate
    package pp  =  standard_prettyprinter;                                      # standard_prettyprinter        is from   src/lib/prettyprint/big/src/standard-prettyprinter.pkg
    package cv  =  compiler_verbosity;                                          # compiler_verbosity            is from   src/lib/compiler/front/basics/main/compiler-verbosity.pkg
herein

    # This api is implemented in:
    #
    #     src/lib/compiler/back/low/mcg/compile-register-moves-phase-g.pkg
    #
    api Compile_Register_Moves_Phase {
        #
        package mcg:  Machcode_Controlflow_Graph;                               # Machcode_Controlflow_Graph    is from   src/lib/compiler/back/low/mcg/machcode-controlflow-graph.api

        compile_register_moves
            :
            (Null_Or(pp::Prettyprinter), cv::Compiler_Verbosity)
            ->
            mcg::Machcode_Controlflow_Graph
            ->
            mcg::Machcode_Controlflow_Graph;
    }; 
end;


## COPYRIGHT (c) 2001 Bell Labs, Lucent Technologies
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext