[m-rev.] diff: [CTGC] revert attempt to avoid reverifying imported calls

Peter Wang novalazy at gmail.com
Thu Jul 24 12:20:05 AEST 2008


Branches: main

compiler/structure_reuse.indirect.m:
	Revert a previous attempt to avoid reverifying calls to imported
	structure reuse procedures.  Explain why that doesn't work.

diff --git a/compiler/structure_reuse.indirect.m b/compiler/structure_reuse.indirect.m
index 4fbb09c..d6640c8 100644
--- a/compiler/structure_reuse.indirect.m
+++ b/compiler/structure_reuse.indirect.m
@@ -585,14 +585,12 @@ indirect_reuse_analyse_plain_call(BaseInfo, !Goal, !IrInfo) :-
             % It's possible that the called procedure had "unconditional
             % reuse only" previously but has since gained reuse conditions.
         ),
-        % Only need to re-verify calls to procedures for which we have the
-        % code.
-        module_info_pred_info(ModuleInfo, CalleePredId, CalleePredInfo),
-        ( pred_info_is_imported(CalleePredInfo) ->
-            Verify = no
-        ;
-            Verify = yes
-        )
+        Verify = yes
+        % For imported procedures, even though we know its reuse information
+        % can't have changed since the last pass (hence verification is
+        % guaranteed to succeed a second time), we still need to call
+        % `verify_indirect_reuse' so that its conditions will be added to the
+        % reuse_as.
     ),
     (
         Verify = yes,


--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list