[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