Files
mercury/tests/par_conj/dg_fib_func.exp
Jerome Tannier 7651d83206 This change adds two new passes to the compiler.
Estimated hours taken: 80
Branches: main

This change adds two new passes to the compiler. The first one,
implicit_parallelism, uses deep profiling feedback information, generated by
mdprof_feedback, to introduce parallel conjunctions where it could be
worthwhile. It deals with both independent and dependent parallelism.

The second new pass, distance_granularity, applies a transformation that
controls the granularity of parallelism for recursive procedures using the
distance metric.

This change also fixes a bug in mdprof_feedback regarding the construction of
the list of CSSs.

compiler/implicit_parallelism.m:
    New module which uses the profiling feedback file generated by
    mdprof_feedback to introduce parallel conjunction where it could be
    useful.

compiler/distance_granularity.m:
    New module. A program transformation that implements granularity control
    of parallel execution using the distance metric.

compiler/dep_par_conj.m:
    Moved find_shared_variables into the interface (needed for
    implicit_parallelism.m).

compiler/goal_util.m:
    Add two new predicates: flatten_conj and create_conj.

compiler/hhf.m:
    Delete flatten_conj and use the one of goal_util instead.

compiler/hlds_pred.m:
    Add a predicate to set the arity of a predicate (needed for
    distance_granularity).

compiler/mercury_compile.m:
    Add the calls to apply implicit parallelism and to control granularity
    using the distance metric.

compiler/options:
    Add implicit-parallelism, feedback-file and distance-granularity options.

compiler/pred_table.m:
    Add a predicate to get the next pred_id available (needed for
    distance_granularity).

compiler/prog_util.m:
    Extend the predicate make_pred_name and the type new_pred_id for
    creating a predicate name for distance_granularity.

compiler/transform_hlds.m:
    Include implicit_parallelism and distance_granularity.

deep_profiler/mdprof_feedback.m:
    Rename distribution to measure.
    Add handling of dump_stages and dump_options.
    Insert elements into the list of CSSs in the correct order.

deep_profiler/dump.m:
    Add "all" option to dump everything out of the Deep.data file.

doc/user_guide.texi:
    Add the following options: --distance-granularity, --implicit-parallelism and
    --feedback-file.

tests/par_conj/Mercury.options:
tests/par_conj/dg_fib.{m,exp}:
tests/par_conj/dg_fib_func.{m,exp}:
    Add two test cases for the distance_granularity module:dg_fib and
    dg_fib_func. As things are, we do not check whether the granularity
    control transformation using the distance metric is applied correctly or
    not. We only check the output of these test cases.
2007-01-13 12:23:18 +00:00

2 lines
7 B
Plaintext