[m-rev.] diff: tabling via extra args (part 1 of 4)

Zoltan Somogyi zs at cs.mu.OZ.AU
Mon Jun 21 13:00:16 AEST 2004


On 19-Jun-2004, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 07-Jun-2004, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> > Reduce the overhead of all forms of tabling by eliminating in many cases
> > the overhead of transferring data across the C/Mercury boundary. These
> > involve lots of control transfers as well as assignments to and from
> > Mercury abstract machine registers, which are not real machine registers
> > on x86 machines. Benchmarking in Uppsala revealed this overhead to be
> > a real problem.
> 
> Did you consider rewriting the tabling procedures in Mercury,
> rather making more use of C code?

That would only make the problem worse. The implementations we are competing
against have single WAM instructions for tabling, whose implementations are
in C, and thus use real x86 registers. Any Mercury implementation would have to
use the Mercury abstract machine registers, which on x86 are *not* real machine
registers.

Zoltan.
--------------------------------------------------------------------------
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