[m-dev.] why append slows down using lco

David Overton dmo at students.cs.mu.oz.au
Wed May 26 15:32:02 AEST 1999

On Wed, May 26, 1999 at 02:57:17PM EST, Peter Ross wrote:
> run.lco.novn:   286434 ms
> run.lco.vn:     258400 ms
> run.nolco.vn:   256117 ms
> As you can see by the figures above, the manual addition of value
> numbering brings the lco code back to approximately the same performance
> as the original code.  (Turning off value numbering for nolco doesn't
> help as the code generated is already very good, only one excess
> assignment)

Hi Pete,

Thanks for doing that.  I've been looking at the value numbering code
in the compiler and I think I've got it working with mem_ref lvals
now.  I'm just waiting for a bootcheck and if it passes that I'll post
a diff.

> Tyson suggested that the problem is due to the fact that when we create
> the cell on the heap the tail cell contains garbage which the boehm gc
> garbage collector may interpret as a pointer.
> Setting the tail cell to zero gives us the required speedup,
> if only just!
> run.nolco.vn:       251950 ms
> run.lco.vn.zero:    249833 ms

I'll change the code generator to do this.
Thanks again,

David Overton       Department of Computer Science & Software Engineering
MEngSc Student      The University of Melbourne, Australia
+61 3 9344 9159     http://www.cs.mu.oz.au/~dmo
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