Related articles |
---|
Help on smart recompilation cheung@unx.sas.com (Clement Cheung) (1992-02-13) |
Re: Help on smart recompilation johnro@microsoft.com (1992-02-16) |
Re: Help on smart recompilation bwb@cs.unh.edu (1992-02-16) |
Re: Help on smart recompilation preston@dawn.cs.rice.edu (1992-02-17) |
Re: Help on smart recompilation cliffc@rice.edu (1992-02-17) |
Newsgroups: | comp.compilers |
From: | preston@dawn.cs.rice.edu (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)
and
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
and
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
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.