[m-rev.] for post-commit review: speed up the compilation of large predicates
Julien Fischer
juliensf at cs.mu.OZ.AU
Mon May 23 18:53:12 AEST 2005
On Mon, 23 May 2005, Zoltan Somogyi wrote:
> The third performance problem is the quadratic or worse behavior of the mode
> checker when merging the instmaps of disjuncts at the ends of large
> disjunctions. With our old setup, this was inevitable, since given a bunch of
> facts of the form
>
> edge(1, 2).
> edge(2, 3).
> edge(3, 4).
> ...
>
> etc, the instmap delta the mode checker builds for HeadVar__1 for the
> disjunction of clauses is free -> bound(1; 2; 3; ...). The solution to that
> is to add a new pragma, mode_check_clauses, that causes the mode checker
> to check each clause individually, and to create a simple free -> ground
> (or whatever the declared mode calls for) instmap delta for HeadVar__1.
> We should consider making this pragma be implied for predicates defined
> by lots of facts, but this diff does not do that. This change takes the
> time to modecheck that 16000-fact predicate from ~360s to ~5s.
>
Is this new pragma supposed to a developer only feature, or is it
intended for general use?
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