[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