[m-dev.] Deep profile tail recursion.

Paul Bone pbone at csse.unimelb.edu.au
Fri Jul 25 15:58:56 AEST 2008


Hi Zoltan.

The deep profiler is supposed to create a duplicate of any tail
recursive procedure, so that tail recursion optimization can be
performed and exit_port_code() can be called at the end of the original
procedure.

I've found that this is disabled by default, and when enabled appears to
make the compiler crash with the following error:

Uncaught Mercury exception:
Software Error: proc_gen.m: Unexpected: generate_deep_prof_info: no HLDS
deep profiling layout info

This is on a development version of the compiler in one of my
workspaces, so the error may not occur with the CVS version.

To your knowledge does this feature work?

I'd like to fix it and enable it as a default.  I believe it is a
sensible option for many programs.  And will probably improve the
performance of program compiled in the deep profiling grade.

Thanks.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/developers/attachments/20080725/5ec93c00/attachment.sig>


More information about the developers mailing list