Zoltan Somogyi a4a1a7788c Add support for taking the addresses of words on the heap as well as on
Estimated hours taken: 7

Add support for taking the addresses of words on the heap as well as on
on either stack. This will be used later to support tail recursion modulo
constructor application as well as parallelism.

The support provided is a first draft. Since nothing in the compiler
currently generates code that uses the new facilities, they have not been
tested yet beyond ensuring that they don't interfere with the old functionality
of the compiler.

llds:
	Add a new type, mem_ref, that denotes a reference to a stackvar,
	a framevar, or to a field of a cell on the heap.

	Add a new function symbol to the type rval: mem_addr(mem_ref),
	which represents the address of the word denoted by the mem_ref.

	Add a new function symbol to the type lval: mem_ref(rval).
	Given that Rval is an address, mem_ref(Rval) denotes the word
	at that address. The value of Rval should have originally come from
	a mem_addr(_) type rval, but that value could have been store in
	registers, stack slots etc since then.

code_exprn, code_info, dupelim, exprn_aux, garbage_out, livemap, llds_common,
llds_out, middle_rec, opt_debug, opt_util, vn_cost, vn_filter:
	Added code to handle the new mem_ref type and the new alternatives
	in lval and rval.

exprn_aux:
	Make exprn_aux__substitute_lval_in_lval more thorough.

vn_type:
	Add vn shadows of the new things in llds.

vn_flush, vn_order, vn_util:
	Handle the new things in llds and/or their vn shadows.
1997-01-21 05:05:31 +00:00
1997-01-17 07:58:16 +00:00
1997-01-20 22:02:39 +00:00
1997-01-16 18:44:54 +00:00
1997-01-20 03:36:40 +00:00

This directory contains the source distribution for the University of Melbourne
Mercury compiler, version 0.6.

The Mercury implementation is free software, but it is Copyright (C)
1994-1996 The University of Melbourne.  It is distributed under the terms
of the GNU General Public License.  See the file COPYING for copying
permission.  The Mercury library and runtime (the files in the library
and runtime subdirectories) are distributed under the terms of the GNU
Library General Public License.  See the file COPYING.LIB for copying
permissions for those files.  (If those licencing arrangements are not
satisfactory, please contact us!  We are willing to offer alternative
arrangements, if the need should arise.)  The subdirectory `boehm_gc'
contains a conservative garbage collector distributed by Hans Boehm -
see the file README in that directory for copyright information about
those files.  A few files (config*, runtime/timing.c) are derived from
code that is copyright by the Free Software Foundation, Inc.  The
program `texi2html' in the doc directory is copyright by CERN; see the
copyright notice at the end of that file.

THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.  See the file COPYING.

See the file INSTALL for installation instructions.
But first read README.IRIX-5, README.AIX, or README.BSDI if you are
installing on a machine running IRIX 5, AIX, or BSD Unix.

The documentation sources are in the `doc' subdirectory.  The installation
process will install INFO, HTML, and DVI versions in the locations specified
in the file Mmake.common - by default these locations are
/usr/local/mercury-0.6/info, /usr/local/mercury-0.6/lib/mercury/html,
and /usr/local/mercury-0.6/lib/mercury/doc respectively.
The files RELEASE_NOTES, NEWS, HISTORY, LIMITATIONS, and BUGS
also contain useful information.  If you're interested in looking
at the source code, the file compiler/notes/COMPILER_DESIGN is
a good place to start.

For more information about Mercury, see the Mercury WWW home page at
http://www.cs.mu.oz.au/mercury, or send mail to mercury@cs.mu.oz.au.

If you would like to join the Mercury mailing lists (there are two,
mercury-users for general discussion, and mercury-announce for
announcements), send mail with "subscribe" in the body to
mercury-users-request@cs.mu.oz.au or mercury-announce-request@cs.mu.oz.au
(respectively).

Please send bug reports, enhancement requests, suggestions for improvements,
and any other feedback to mercury-bugs@cs.mu.oz.au or mercury@cs.mu.oz.au.
If you find something you don't like, please tell us.
If you find something you do like, please tell the world!

The Mercury distribution is available via anonymous ftp or WWW
from the following locations:

	Australia:
		ftp://turiel.cs.mu.oz.au/pub/mercury
	USA:
		ftp://ftp.cs.sunysb.edu/pub/XSB/mercury
	Europe:
		ftp://ftp.csd.uu.se/pub/Mercury
Description
No description provided
Readme MIT 249 MiB
Languages
Mercury 85.3%
C 8.7%
Shell 1.4%
Makefile 1%
JavaScript 1%
Other 2.1%