Re: Help on smart recompilation (Preston Briggs)
Mon, 17 Feb 1992 02:35:06 GMT

          From comp.compilers

Related articles
Help on smart recompilation (Clement Cheung) (1992-02-13)
Re: Help on smart recompilation (1992-02-16)
Re: Help on smart recompilation (1992-02-16)
Re: Help on smart recompilation (1992-02-17)
Re: Help on smart recompilation (1992-02-17)
| List of all articles for this month |

Newsgroups: comp.compilers
From: (Preston Briggs)
Keywords: tools, syntax, bibliography
Organization: Rice University, Houston
References: 92-02-069 92-02-077
Date: Mon, 17 Feb 1992 02:35:06 GMT

Clement Cheung writes:
> I got hold on two papers on smart recompilation. And I quote "Smart
> recompilation is the method of reducing the set of modules that must be
> recompiled after a change. The method determines whether recompilation is
> necessary by isolating the differences among program modules and analyzing
> the effect of changes."

I assume the '86 papers were

Smart Recompilation
Walter F. Tichy
TOPLAS 8(3), July 1986
(an earlier version appears in the 12th POPL)


Interprocedural Optimization: Eliminating Unnecessary Recompilation
Keith D. Cooper, Linda Torczon, and Ken Kennedy
Proceedings of the SIGPLAN '86 Symposium on Compiler Construction
SIGPLAN Notices 21(7), July 1986

A couple of more recent papers include

Smarter Recompilation
Robert W. Schwanke and Gail E. Kaiser
TOPLAS 10(4), October 1988


Tichy's response to [the above paper]
Walter F. Tichy
TOPLAS 10(4), October 1988

The work by Tichy and by Schwanke and Kaiser attempts to decrease the
amount of recompilation required when low-level modules are changed. For
example, in Modula 2, there's no reason to recompile the world because we
corrected a spelling error in a comment in an interface module.
Similarly, the order of procedure or type declarations doesn't matter. On
the other hand, changing the number or type of parameters declared for
procedure Zap is significant, though only if higher-level modules
reference Zap.

The work by Cooper et al. attempts to decrease the amount of recompilation
required by interprocedural optimization. For example, if the compilation
of procedure A depended on its parameters not being aliased and suddenly a
caller of A is edited, invalidating the non-aliasing assumption, then A
must be recompiled for correctness. On the other hand, assume A called B
where B was known to modify a global variable G. If B is edited so that it
no longer changes G, then A need not be recompiled for correctness (though
it may be recompiled for faster code).

Preston Briggs

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.