[mercury-users] High-level vs LLDS grades

Ralph Becket rafe at cs.mu.OZ.AU
Mon Jul 19 10:14:05 AEST 2004


Peter Hawkins, Saturday, 17 July 2004:
> Hi...
> 
> I'm interested to know whether anyone has benchmarked the performance of
> the various grades recently. In particular I'd like to know:
> 
> * Is the grade reg.gc likely to be faster than hlc.gc?
> * Is the grade hlc.gc likely to be faster than none.gc?
> * What features (if any does the grade hlc.gc) lack? Are there any
>   reasons to install the LLDS grades at all?

Section 10.8.1, "Grades and grade components" of the Users' Manual tells
you what the different grades do.  If you're using gcc then `asm_fast',
which sets --gcc-global-registers --gcc-nonlocal-gotos --asm-labels, is
almost certainly going to be faster than `reg', which sets just
--gcc-global-registers, which is almost certainly going to be faster
than `none', which uses no gcc extensions at all.

`hlc' generates high-level C code, but uses a low-level data
representation, and is often a little faster than `asm_fast'.  `hl'
generates both high-level C code and data structures and performs
similarly.

The debugger, as I understand it, currently only works in the LLDS
grades, so it's a good idea to include `asm_fast.gc.tr.debug' in your
list of library grades.

> The only indication of this that I could find on the web pages was the
> following list in the 0.10 release notes:
> * abstractly exported equivalence types defined as `float' 
> * calling compare/3, or the `in = in' mode of unification, for certain
>   standard library types (std_util__type_desc/0, and
>   std_util__type_ctor_desc/0). 
> * calling copy/2 on higher-order terms 
> * demangling of symbol names in the profiler 
> * fact tables for procedures with determinism `nondet' or `multi' 
> * the Mercury debugger (mdb) 
> * the Morphine trace analysis system 
> * the Aditi deductive database interface 
> * the `--split-c-files' option 
> * the `--introduce-accumulators' option 
> * dynamic linking (via the dl__mercury_sym procedure in extras/dynamic/dl.m
>   in the mercury-extras distribution) for procedures with arguments of
>   type `float' or `char' 
> 
> Which of these still apply?

Er, in what sense?

-- Ralph
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list