[m-dev.] LLDS accurate GC status
Peter Ross
pro at missioncriticalit.com
Wed Oct 15 18:25:39 AEST 2003
On Wed, Oct 15, 2003 at 09:49:58AM +1000, Fergus Henderson wrote:
> On 14-Oct-2003, Michael Day <mikeday at yeslogic.com> wrote:
> >
> > > I did some speed comparisons of the compiler built in asm_fast.agc with -O2,
> > > and it gets about a 25% improvement compared to the asm_fast.gc -O2 version,
> > > and a 20% improvement compared to the hlc.gc -O5 version that is
> > > installed on ceres (all using gcc 2.95.4).
> >
> > Wow! That is fantastic :)
> >
> > Is this speed up a recent phenomenon?
>
> Yes.
>
> > (I had the impression some how that
> > the last benchmarks showed accurate garbage collection to be slower than
> > the conservative collector).
>
> Accurate GC is slower than the conservative collector when used with the
> high-level back-end. The reason is that with the high-level back-end,
> we don't control register allocation; in order to keep track of the
> locations of pointers, so that they can be traced and updated by the
> collector, we need to take their addresses, which prevents the C compiler
> from putting them in registers. So for the high-level back-end,
> accurate GC inhibits register allocation. For the low-level back-end,
> we do our own register allocation (to our own virtual register set,
> some of which get mapped to real registers), so we have enough
> information for the GC to trace values even when they are stored in
> registers. Thus the overhead of accurate GC is much smaller for the
> low-level back-end.
>
So do you have any ideas on how to work around this for the high level
backend?
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list