diff: split up three big modules

View: New views
1 Messages — Rating Filter:   Alert me  

diff: split up three big modules

by Zoltan Somogyi-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This diff only moves code around; it does not change the code. The diff
is too big to post; it is in ~zs/tmp/DIFF.split.

Zoltan.

Split up three big compiler modules: llds_out.m, hlds_out.m (5000+ lines each)
and deep_profiling.m (3000+ lines). Put the predicates in the resulting
smaller modules into cohesive groups where possible. A few of the predicates
in the original modules were unused; this diff deletes them.

There are no algorithmic changes.

compiler/llds_out_code_addr.m:
        New module containing the part of llds_out.m that outputs
        code addresses and labels.

compiler/llds_out_data.m:
        New module containing the part of llds_out.m that outputs
        lvals, rvals and their components.

compiler/llds_out_global.m:
        New module containing the part of llds_out.m that generates
        global static C data structures.

compiler/llds_out_instr.m:
        New module containing the part of llds_out.m that outputs
        instructions

compiler/llds_out_file.m:
        New module containing the top level part of llds_out.m,
        which coordinates the generation of a whole C source file.

compiler/llds_out_util.m:
        New module containing the utility parts of llds_out.m.

compiler/llds_out.m:
        Replace everything in this file with just the includes of the
        submodules that now have all its previous contents.

compiler/hlds_llds.m:
        Move a predicate here from llds_out.m, since it is a utility
        predicate operating on a type defined here.

compiler/rtti_out.m:
        Move a predicate here from llds_out.m, since it is a predicate
        generating output from a rtti type.

compiler/hlds_out_mode.m:
        The part of hlds_out.m that deals with writing out insts and modes.

compiler/hlds_out_goal.m:
        The part of hlds_out.m that deals with writing out goals.

compiler/hlds_out_pred.m:
        The part of hlds_out.m that deals with writing out predicates and
        procedures.

compiler/hlds_out_module.m:
        The part of hlds_out.m that deals with writing out module-wide tables.

compiler/hlds_out_util.m:
        Parts of hlds_out.m that don't fit in anywhere else.

compiler/hlds_out.m:
        Replace everything in this file with just the includes of the
        submodules that now have all its previous contents.

compiler/simplify.m:
compiler/hlds_goal.m:
        Move some insts from simplify.m to hlds_goal.m to allow
        hlds_out_goal.m to use them also.

compiler/coverage_profiling.m:
        The part of deep_profiling.m that deals with coverage profiling.

compiler/deep_profiling.m:
        Remove the code moved to coverage_profiling.m, and export the utility
        predicates needed by coverage_profiling.m.

        Remove the things moved to prog_data.m and hlds_goal.m.

        Put the predicates into a more logical order.

compiler/hlds_goal.m:
        Move some predicates here from deep_profiling.m, since they
        belong here.

compiler/prog_data.m:
        Move a type from deep_profiling.m here, since it belongs here.

compiler/add_pragma.m:
        Add a predicate from llds_out.m that is used only here.

compiler/*.m:
        Conform to the changes above.
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews@...
Administrative Queries: owner-mercury-reviews@...
Subscriptions:          mercury-reviews-request@...
--------------------------------------------------------------------------