[m-rev.] for review: tupling transformation

Julien Fischer juliensf at cs.mu.OZ.AU
Thu Mar 3 19:01:41 AEDT 2005


On Wed, 2 Mar 2005, Peter Wang wrote:

> I tried to send this earlier today, but I think it might have been
> rejected due to the size.  I'm sending the diff as a compressed
> attachment this time.  I haven't updated the documentation yet.
>
> Peter
>
>
> Estimated hours taken: two months
> Branches: main
>
> This change adds a tupling transformation to the compiler.  It takes the
> HLDS
> and tries to find opportunities for procedures to pass some arguments to
> each
> as a tuple rather than as individual arguments.
>
> compiler/interval.m:
> compiler/stack_opt.m:
> compiler/backend_libs.m:
>     Moved the predicate from stack_opt.m that builds up information about
>     intervals into a new module backend_libs__interval, and generalised it
>     for use by the tupling transformation.  The predicate was called
>     `optimize_live_sets_in_goal' and was renamed to
>     `build_interval_info_in_goal'.
>
>     Also moved the predicate `record_decisions_in_goal'.
>
> compiler/transform_hlds.m:
> compiler/tupling.m:
>     New module `tranform_hlds__tupling'.
>
> compiler/mercury_compile.m:
>     Added code to run the tupling pass.
>
>     Run a simplification pass after the untupling transformation.  The
>     untupling transformation generates procedures that really should be
>     simplified, and it should help the tupling transformation (which runs
>     directly after untupling).
>
> compiler/options.m:
>     Add the options --tuple, --tuple-trace-counts-file,
>     --tuple-costs-ratio and --tuple-min-args.
>
> compiler/handle_options.m:
>     Disable --tuple when debugging is on.
>
> compiler/hlds_goal.m:
> compiler/common.m:
> compiler/saved_vars.m
>     Add `tuple_opt' goal feature.
>
> compiler/hlds_pred.m:
> compiler/layout_out.m:
>     Add a new `tuple' functor for `pred_transformation'.
>
> compiler/untupling.m:
>     Made the untupling transformation give better names to the head
>     variables in the untupled versions of procedures that it generates.
>     This is needed for the tupling transformation to find related head
>     variables between procedures in an SCC.
>
> mdbcomp/trace_counts.m:
>     Add predicate `restrict_trace_counts_to_module'.
>

Have you added documentation for this somewhere?

Julien.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list