6 May 2003 01:27:02 -0400

Related articles |
---|

Data flow analysis and constant propagation matt@beastrider.com (Matt) (2003-04-20) |

Re: Data flow analysis and constant propagation dnovillo@redhat.com (Diego Novillo) (2003-04-27) |

Re: Data flow analysis and constant propagation titzer@expert.ics.purdue.edu (Ben L. Titzer) (2003-04-27) |

Re: Data flow analysis and constant propagation matt@peakfive.com (Matt) (2003-05-06) |

From: | Matt <matt@peakfive.com> |

Newsgroups: | comp.compilers |

Date: | 6 May 2003 01:27:02 -0400 |

Organization: | AT&T Broadband |

References: | 03-04-069 03-04-096 |

Keywords: | analysis |

Posted-Date: | 06 May 2003 01:27:02 EDT |

This is what I have: Fortran90 is translated into a data/control flow

graph. I'm not interested in mutually recursive functions and I'm

treating inter procedural analysis as orthogonal to this. The graph

is translated into a control tree using interval analysis. This tree

contains basic blocks, while loops, do loops, if, if-else, and generic

loops. On this tree in 2 passes I can do a lot of things like

reaching definitions and live variables. This is all done using

something called structural analysis. I can't do constant propagation

using structural analysis but I've done all this work building this

control tree so I was wondering if I could somehow use it for doing

constant propagation and what I really want for now, which is to find

out if a value is a loop index plus a constant. If there were a way

to do simple attribution on the tree that would deterimine the value

of each expression that would be great.

Hope this clears a few things up.

What I have found that looks good is a demand driven approach. The tree

is used to determine def-use info. Then the compiler uses a recursive

approach based on the def-use info to determine the rest.

Matt

"Ben L. Titzer" wrote:

*> If your module is powerful enough to dataflow analysis, then it should*

*> be possible to perform constant propagation with it. Constant*

*> propagation is just a special case of dataflow analysis where a*

*> program point only has a single constant flow into it.*

*>*

*> Are you using a context-sensitive or insensitive analysis? ...*

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.