13 Jan 1998 00:19:33 -0500

Related articles |
---|

algorithm for computing the interference graph in SSA form? haahr@netcom.com (Paul Haahr) (1997-12-17) |

Re: algorithm for computing the interference graph in SSA form? preston@cs.rice.edu (1997-12-19) |

Re: algorithm for computing the interference graph in SSA form? cliff.click@Eng.Sun.COM (cliffc) (1997-12-23) |

Re: algorithm for computing the interference graph in SSA form? cliff.click@Eng.Sun.COM (cliffc) (1998-01-06) |

Re: algorithm for computing the interference graph in SSA form? mwolfe@pgroup.com (1998-01-08) |

Re: algorithm for computing the interference graph in SSA form? cliff.click@Eng.Sun.COM (cliffc) (1998-01-13) |

From: | cliffc <cliff.click@Eng.Sun.COM> |

Newsgroups: | comp.compilers |

Date: | 13 Jan 1998 00:19:33 -0500 |

Organization: | Sun Microsystems |

References: | 97-12-141 98-01-026 98-01-032 |

Keywords: | analysis |

Michael Wolfe wrote:

*>*

*> Paul Haahr wrote:*

*> >*

*> > It's probably just that I'm not clever enough, but all I've been able*

*> > to come up with is something that looks like an iterative data flow*

*> > analysis, which can be somewhat improved by paying attention to loops*

*>*

*> Cliff Click wrote:*

*> > (1) Solve the classic LIVE problem any way you like. Phis need special*

*> > handling.*

*>*

*> Sorry, Cliff, this is "something that looks like an iterative data*

*> flow analysis", just what Paul came up with himself.*

Well, I certainly never claimed to not be doing an interative data

flow analysis. I do the analysis on the SSA form, avoiding a step

which removes SSA form prior to doing LIVE. This is what I meant by

"go from SSA to interference graph directly".

*> We tried really hard to*

*> optimize interference graph construction using the lambda-terms,*

*> seeing that we didn't need to solve a global iterative live-variable*

*> problem, and in fact didn't need to solve the live-variable problem*

*> globally at all. However, a simple bit-vector live-variable analysis*

*> and basic-block traversal interference graph constructor still*

*> outperformed our best efforts (by a constant factor, between 1.2 and*

*> 1.9). Our best guess is that the cost of inserting and traversing the*

*> lambda terms ate up any gains from a more efficient algorithm, and*

*> remember that bit-vector algorithms have a factor of 32 (or 64, word*

*> size) advantage.*

*>*

*> For reference, see Eric's thesis:*

*> ftp://cse.ogi.edu/pub/tech-reports/1995/95-TH-001.ps.gz*

*>*

*> Bottom line, I'd go with iterative live-variable analysis (not that my*

*> opinion matters).*

The wheel on incarnation goes around & around & ...

I replaced my bitvector approach with a sparse vector approach.

For small programs, either approach is fine. For large programs,

the bitvectors are typically sparse enough (factor of 100 or so)

that the sparse vector is faster. "Typically sparse enough" is

very emperical, as are the constant factors found in implementations

so where you draw the line may be different.

--

Cliff Click Compiler Designer and Researcher

cliffc at acm.org JavaSoft

(408) 863-3266 MS UCUP02-302

--

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.