Hi,
On 3/14/07, Seongbae Park <[EMAIL PROTECTED]> wrote:
On 3/14/07, Sunzir Deepur <[EMAIL PROTECTED]> wrote:
> I have used -da and -dv to produce vcg files of the CFG of this simple
program:
>
> int main(int argc, char**argv)
> {
> if(argc)
> printf("positive\n");
> else
> printf("zero\n");
>
> return 0;
> }
>
> I have expected to get a CFG as follows:
>
> -----------
> | BB 0 |
> -----------
> / \
> ----------- -----------
> | BB 1 | | BB 2 |
> ----------- -----------
> \ /
> -----------
> | END |
> -----------
>
> But instead, I was surprised to get this CFG:
>
> -----------
> | BB 0 |
> -----------
> / \
> ----------- -----------
> | BB 1 | ------------> | BB 2 |
> ----------- -----------
> \ /
> -----------
> | END |
> -----------
>
> as if one case of the "if" can lead to the other !
>
I don't know what kind of vcg viewer/converter you're using,
but set it to ignore class 3 edges - you'll get what you expected.
I have used an evaluation copy of aiSee viewer (can i use graphviz for
displaying gcc's vcg files ?)
Can you please explain me why has this edge been created ?
What are class 3 edges ? can I prevent them from being created ?
Thank You Very Very Much !!
Sunzir.
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com"