Related articles |
---|
Common subexpression analysis (summary) mernst@theory.lcs.mit.edu (1992-06-26) |
Re: Common subexpression analysis (summary) buzzard@eng.umd.edu (1992-07-07) |
Re: Common subexpression analysis (summary) Bruce.Hoult@bbs.actrix.gen.nz (1992-07-13) |
Re: Common subexpression analysis (summary) igor!voltaire!davidm@uunet.UU.NET (1992-07-13) |
Re: Common subexpression analysis (summary) Dik.Winter@cwi.nl (1992-07-13) |
Re: Common subexpression analysis f88ho@efd.lth.se (1992-07-14) |
permissible numerical optimizations tmb@arolla.idiap.ch (1992-07-14) |
[2 later articles] |
Newsgroups: | comp.compilers |
From: | mernst@theory.lcs.mit.edu (Michael Ernst) |
Organization: | Compilers Central |
Date: | Fri, 26 Jun 1992 21:54:44 GMT |
Keywords: | optimize, summary |
Earlier this month I asked a question regarding the state of the art in
common subexpression elimination; this is a summary of the responses to my
query, except those of Preston Briggs and Michael Sharp, which have
already appeared in this newsgroup. (My apologies for my delay in posting
this; I'm having trouble typing due to RSI.)
Research on CSE in the last decade and a half has been very sporadic.
Many people said that the problem is NP-complete; this has been proved in
two important special cases. Most respondants said that the effort
involved in doing anything more complicated than the two standard
techniques (value-numbering to determine when operands are equivalent to
some encountered earlier in the basic block, and checks for lexical
identity when the operands have not been modified since the operation was
last performed) would be more effort than it was worth.
My question about reassociation evoked more response; again, most people
said it was unlikely to be worthwhile. I've run across several references
in the literature to compilers that reassociate, but they don't provide
any more details than a paragraph. The Convex Fortran compiler does this,
for instance; the PL.8 and Id compilers do rearrangement in the
code-hoisting module, where expression are small and the largest speedups
can be obtained. Cocke and Markstein say that a variant of rearrangement
provides 50% speedup in some real inner loops, but at that point they had
not yet implemented their technique.
-Michael Ernst
mernst@theory.lcs.mit.edu
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.