[m-rev.] diff: improvement for semidet foreign_procs
Julien Fischer
juliensf at cs.mu.OZ.AU
Mon Jun 13 02:30:03 AEST 2005
On Fri, 10 Jun 2005, Zoltan Somogyi wrote:
> compiler/pragma_c_gen.m:
> Generate somewhat faster code for semidet foreign_procs. Instead of
> storing the success indication into r1, which may require moving some
> data out of r1, stored it in a local C variable. Provide backward
> compatibility with existing semidet foreign_procs by #defining
> SUCCESS_INDICATOR to stand for this local variable in the foreign code.
>
> compiler/llds_out.m:
> Use the same name as pragma_c_gen when writing out this variable.
>
> runtime/mercury_types.h:
> Note that pragma_c_gen now temporarily redefines SUCCESS_INDICATOR.
>
This change has broken building the library when compiling
with '--opt-space' (which all of our machines use for the nightly
builds.) The compiler aborts with:
Uncaught Mercury exception:
Software Error: map__lookup: key not found
Key Type: ll_backend.llds.label
Key Value: internal(14, proc(unqualified("array"),
predicate, unqualified("array"), "lookup", 3, 0))
Value Type: ll_backend.frameopt.block_info
I've committed the following in order to get the nightly tests on the
main branch up and running again:
Estimated hours taken: 0.1
Branches: main
library/Mercury.options:
Workaround a problem cause by the change to the handling
of the success indication for semidet preds.
Index: library/Mercury.options
===================================================================
RCS file: /home/mercury1/repository/mercury/library/Mercury.options,v
retrieving revision 1.5
diff -u -r1.5 Mercury.options
--- library/Mercury.options 12 Apr 2005 04:59:29 -0000 1.5
+++ library/Mercury.options 12 Jun 2005 14:51:49 -0000
@@ -18,6 +18,7 @@
# Bug workarounds.
MCFLAGS-std_util += --no-halt-at-warn
+MCFLAGS-array += --no-optimize-dups
# io.m uses library features that are supported by POSIX but which are not
# part of ANSI C, such as `struct stat', fileno(), and putenv().
Julien.
--------------------------------------------------------------------------
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