Re: Comparing Control Flow Graphs

preston@miranda.cs.rice.edu (Preston Briggs)
Mon, 7 Dec 1992 23:41:44 GMT

          From comp.compilers

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)
| List of all articles for this month |
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
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.