Files
mercury/tests/par_conj/dep_par_24.exp
Peter Wang bdcb1a10c6 Make the dependent parallel conjunction transformation insert calls to
Branches: main

Make the dependent parallel conjunction transformation insert calls to
`par_builtin.wait' as late as possible, and calls to `par_builtin.signal' as
soon as possible.

Next, combine contiguous sequences of waits, then a plain call to a
non-imported procedure, then signals (where there must be at least one wait or
signal) into a call to a specialised "parallel" procedure that takes futures
in place of the arguments for which waiting or signalling is required.
The waits and signals are then moved into the parallel procedures where they
can be shifted around more and combined into further calls.


compiler/dep_par_conj.m:
	As above.

compiler/hlds_pred.m:
compiler/layout_out.m:
	Add dependent_parallel_conjunction as a source of transformed
	predicates.

compiler/prog_util.m:
	Add parallel_args as a way to build names for "parallel" procedures.

compiler/simplify.m:
	Don't let the simplification pass do simplifications of common
	information between parallel conjuncts, as they would introduce
	dependences between conjuncts which the programmer (and the dependent
	parallel conjunction tranformation...) probably did not intend.

library/par_builtin.m:
mdbcomp/program_representation.m:
	Add `get/2' which gets the value associated with a future, i.e. it is
	like `wait/2' but assumes that the future has been signalled already.

	Fix a wrong assertion that a future should only be signalled once.

tests/par_conj/Mercury.options:
tests/par_conj/Mmakefile:
tests/par_conj/dep_par_11d.exp:
tests/par_conj/dep_par_11d.m:
tests/par_conj/dep_par_24.exp:
tests/par_conj/dep_par_24.m:
tests/par_conj/dep_par_24b.exp:
tests/par_conj/dep_par_24b.m:
tests/par_conj/dep_par_25.exp:
tests/par_conj/dep_par_25.m:
tests/par_conj/dep_par_25b.exp:
tests/par_conj/dep_par_25b.m:
tests/par_conj/dep_par_26.exp:
tests/par_conj/dep_par_26.m:
tests/par_conj/dep_par_27.exp:
tests/par_conj/dep_par_27.m:
tests/par_conj/dep_par_28.exp:
tests/par_conj/dep_par_28.m:
tests/par_conj/dep_par_6b.exp:
tests/par_conj/dep_par_6b.m:
	Add test cases.
2006-08-09 03:17:18 +00:00

2 lines
3 B
Plaintext