[m-rev.] diff: exception.m fix
Zoltan Somogyi
zs at cs.mu.OZ.AU
Tue Jun 29 12:08:24 AEST 2004
library/exception.m:
Fix a bug that only showed up at very high levels of optimization,
such as that used by jupiter during its nightly tests.
Zoltan.
cvs diff: Diffing .
Index: exception.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/library/exception.m,v
retrieving revision 1.90
diff -u -b -r1.90 exception.m
--- exception.m 21 Jun 2004 09:16:16 -0000 1.90
+++ exception.m 28 Jun 2004 08:01:33 -0000
@@ -1778,26 +1778,36 @@
** on the nondet stack, so for the purposes of doing stack traces we say
** they have MR_DETISM_NON, even though they are not actually nondet.
**
-** MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(detism, slots, succip_locn,
+** The fields of the MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT macro are
+** the following:
+**
+** MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(detism, slots, succip_locn,
** pred_or_func, module, name, arity, mode)
+**
+** We must use MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT instead of the
+** MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT version, because with intermodule
+** optimization, the caller of builtin_catch may be inlined in other modules
+** (e.g. browser/declarative_debugger.m), and deep profiling may therefore
+** need the address of the proc_layout structure for the call's
+** call_site_static structure.
*/
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 0);
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 1);
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 2);
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 3);
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 4);
-MR_STATIC_USER_PROC_STATIC_PROC_LAYOUT(
+MR_EXTERN_USER_PROC_STATIC_PROC_LAYOUT(
MR_DETISM_NON, MR_PROC_NO_SLOT_COUNT, -1,
MR_PREDICATE, exception, builtin_catch, 3, 5);
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list