[m-rev.] for post-commit review: speed up the compilation of large predicates
Julien Fischer
juliensf at cs.mu.OZ.AU
Wed May 25 18:56:42 AEST 2005
On Wed, 25 May 2005, Zoltan Somogyi wrote:
> Index: compiler/modes.m
...
> @@ -832,13 +838,61 @@
> mode_info_set_context(BodyContext, !ModeInfo)
> ),
>
> + % Modecheck each clause of the procedure body separately.
> (
...
> + (
> + ClausesForm0 = clause_disj(Disjuncts1),
> + Disjuncts2 = flatten_disjs(Disjuncts1),
> + ( determinism_components(Detism, _, at_most_many) ->
> + mode_info_add_live_vars(NonLocals, !ModeInfo),
> + make_all_nondet_live_vars_mostly_uniq(!ModeInfo),
> + mode_info_remove_live_vars(NonLocals, !ModeInfo)
> + ;
> + true
> + ),
> + list__map_foldl2(
> + unique_modecheck_clause_disj(HeadVars, InstMap0,
> + ArgFinalInsts0, Detism, NonLocals,
> + NondetLiveVars0),
> + Disjuncts2, Disjuncts, !ModeInfo, !IO),
> + NewGoalExpr = disj(Disjuncts)
> + ;
> + ClausesForm0 = clause_switch(SwitchVar, CanFail, Cases1),
> + list__map_foldl2(
> + unique_modecheck_clause_switch(HeadVars, InstMap0,
> + ArgFinalInsts0, SwitchVar),
> + Cases1, Cases, !ModeInfo, !IO),
> + NewGoalExpr = switch(SwitchVar, CanFail, Cases)
> + )
> + % error("do_modecheck_proc: unexpected check_unique_modes")
Is there a reason that this commented out call to error is here, or did
you just forget to delete it?
The rest looks ok.
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