[m-rev.] [reuse] for review: files erronuously touched
Simon Taylor
stayl at cs.mu.OZ.AU
Sat Aug 11 01:53:00 AEST 2001
On 10-Aug-2001, Nancy Mazur <Nancy.Mazur at cs.kuleuven.ac.be> wrote:
> Estimated hours taken: 1
> Branches: reuse
>
> In combination with smart_recompilation, problems occurred as
> files were erronuously touched where they shouldn't. This problem
> is caused by the fact that we delay the generation of the .trans_opt
> file till after stage 50 (as reuse analysis will only be done
> by then). Normally it assumed that once after stage 50,
> full compilation will be required, hence touching all the necessary
> files.
>
> mercury_compile.m:
> After stage 50, either check whether only the trans_opts
> need to be generated. If so, do so, if not, go on, and compile till
> the end, including touching all possible files.
This change stops the compiler touching the `.c_date' file when writing
the `.trans_opt' file, but the compiler will still be doing some other
things it shouldn't do when writing the `.trans_opt' file, for example
generating the profiling call graph and generating Aditi bytecode.
Given that all you really want is to make sure the middle (optimization)
passes are run before the `.trans_opt' file is written out, it would be
much simpler to put the call to mercury_compile__output_trans_opt_file
back where it is in the main branch compiler, and call
mercury_compile__middle_pass from there.
Simon.
--- mercury_compile.m.old Sat Aug 11 01:46:06 2001
+++ mercury_compile.m Sat Aug 11 01:46:38 2001
@@ -1000,6 +1000,9 @@
; { MakeOptInt = yes } ->
% only run up to typechecking when making the .opt file
[]
+ ; { MakeTransOptInt = yes } ->
+ mercury_compile__middle_pass(ModuleName, HLDS21, HLDS50, _),
+ mercury_compile__output_trans_opt_file(HLDS50)
;
mercury_compile__maybe_output_prof_call_graph(HLDS21,
Verbose, Stats, HLDS25),
@@ -1029,9 +1032,6 @@
Verbose, MaybeRLFile),
( { AditiOnly = yes } ->
{ HLDS = HLDS50 }
- ; { MakeTransOptInt = yes } ->
- { HLDS = HLDS50 },
- mercury_compile__output_trans_opt_file(HLDS50)
; { Target = il } ->
{ HLDS = HLDS50 },
mercury_compile__mlds_backend(HLDS, MLDS),
--------------------------------------------------------------------------
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