[m-dev.] diff: fix Aditi intermodule optimization bug

Simon TAYLOR stayl at cs.mu.OZ.AU
Tue Jun 27 15:35:18 AEST 2000



Estimated hours taken: 0.5

compiler/dead_proc_elim.m:
	Don't throw away the declarations for base relations defined
	in the current module when compiling with
	`--intermodule-optimization'. magic.m and rl_out.pp need the
	declarations to generate interface and update procedures
	for the base relations.


Index: dead_proc_elim.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/dead_proc_elim.m,v
retrieving revision 1.55
diff -u -u -r1.55 dead_proc_elim.m
--- dead_proc_elim.m	2000/04/11 07:56:55	1.55
+++ dead_proc_elim.m	2000/06/26 05:16:25
@@ -800,6 +800,11 @@
 			\+ pred_info_is_imported(PredInfo), 
 			\+ pred_info_import_status(PredInfo, opt_imported)
 		;
+			% Don't eliminate predicates declared in this module
+			% with a `:- external' or `:- pragma base_relation'
+			% declaration.
+			module_info_name(ModuleInfo, PredModule)
+		;
 			% Don't eliminate <foo>_init_any/1 predicates;
 			% modes.m may insert calls to them to initialize
 			% variables from inst `free' to inst `any'.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list