for review: stack trace changes to compiler.

Tyson Dowd trd at cs.mu.OZ.AU
Tue Mar 3 18:57:06 AEDT 1998


Hi,

Here are some changes to the compiler to support stack layouts.
Changes to the runtime and library are on their way.

This change just needs a quick check, but you might want to
look at the runtime/library change as well.

===================================================================


Estimated hours taken: 1.0

Small changes to support stack traces.

compiler/llds_out.m:
	Run initialization if MR_INSERT_LABELS is defined, because we
	will need to do this for stack traces, accurate gc, etc.

compiler/stack_layout.m:
	Update the documentation a little to refer to the new file
	mercury_stack_layout.h rather than mercury_accurate_gc.h.

Index: compiler/llds_out.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/llds_out.m,v
retrieving revision 1.72
diff -u -r1.72 llds_out.m
--- llds_out.m	1998/02/03 08:18:29	1.72
+++ llds_out.m	1998/02/19 04:28:39
@@ -253,7 +253,7 @@
 	io__write_string("!defined(USE_ASM_LABELS)) \\\n\t|| "),
 	io__write_string("defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \\\n"),
 	io__write_string("\t|| defined(DEBUG_LABELS) || !defined(SPEED) \\\n"),
-	io__write_string("\t|| defined(NATIVE_GC) \n\n"),
+	io__write_string("\t|| defined(MR_INSERT_LABELS) \n\n"),
 	io__write_string("static void "),
 	output_bunch_name(BaseName, 0),
 	io__write_string("(void)\n"),
@@ -275,7 +275,7 @@
 	io__write_string("!defined(USE_ASM_LABELS)) \\\n\t|| "),
 	io__write_string("defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \\\n"),
 	io__write_string("\t|| defined(DEBUG_LABELS) || !defined(SPEED) \\\n"),
-	io__write_string("\t|| defined(NATIVE_GC) \n\n"),
+	io__write_string("\t|| defined(MR_INSERT_LABELS) \n\n"),
 	io__write_string("\tstatic bool done = FALSE;\n"),
 	io__write_string("\tif (!done) {\n"),
 	io__write_string("\t\tdone = TRUE;\n"),
Index: compiler/stack_layout.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/stack_layout.m,v
retrieving revision 1.7
diff -u -r1.7 stack_layout.m
--- stack_layout.m	1998/02/10 02:04:54	1.7
+++ stack_layout.m	1998/02/19 05:32:41
@@ -28,7 +28,7 @@
 % This table will always contain the following information:
 %
 %	code address		(Code *) - address of entry
-% 	determinism		(Integer) actually, type MR_determinism
+% 	determinism		(Integer) actually, type MR_Determinism
 % 	number of stack slots	(Integer)
 % 	succip stack location	(Integer) actually, type MR_Live_Lval
 % 					(the location will be set to -1
@@ -475,9 +475,9 @@
 
 %---------------------------------------------------------------------------%
 
-	% The constants here should be kept in sync with constants in
-	% the runtime system:
-	% 	mercury_accurate_gc.h - contains macros to access these
+	% The constants and representations here should be kept in sync
+	% with constants in the runtime system:
+	% 	mercury_stack_layout.h - contains macros to access these
 	%			 	constants.
 
 	% Construct a representation of a live_value_type.


-- 
       Tyson Dowd           # There isn't any reason why Linux can't be
                            # implemented as an enterprise computing solution.
     trd at cs.mu.oz.au        # Find out what you've been missing while you've
http://www.cs.mu.oz.au/~trd # been rebooting Windows NT. -- InfoWorld, 1998.



More information about the developers mailing list