Related articles |
---|
Comparing Control Flow Graphs sabry@rice.edu (1992-12-07) |
Re: Comparing Control Flow Graphs preston@miranda.cs.rice.edu (1992-12-07) |
Newsgroups: | comp.compilers |
From: | preston@miranda.cs.rice.edu (Preston Briggs) |
Organization: | Rice University, Houston |
Date: | Mon, 7 Dec 1992 23:41:44 GMT |
References: | 92-12-021 |
Keywords: | optimize |
>Is there any formal notion that captures the "precision" of a control flow
>graph?
>Control Flow Graphs:
>
> x = y x = y
> /\ /\
> / \ / \
> A B A;C1 B;C2
> \ / \ /
> \/ \/
> | |
> C |
> | |
> end end
I don't have a good answer for the main question; but I can tlak about
your examples for a minute. The left-hand case accurately represents the
code. The right-hand case represents the code after duplicating the block
C. The right-hand case permits sharper analysis for forward problems and
may result in better code for C1 and C2 versus C.
I don't really think of one being more precise than the other; the
right-hand case is just the result of a transformation, permittung better
analysis and optimization. Similar things happen with procedure cloning
and loop unrolling. For more examples of the effects of cloning basic
blocks, see the (poorly titled) paper
title="Avoiding Unconditional Jumps by Code Replication",
author="Frank Mueller and David B. Whalley",
pages="322--330",
journal=sigplan,
year=1992,
month=july,
volume=27,
number=7,
note=pldi92
Preston Briggs
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.