This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bad edge created in CFG ?


Hi,

On 3/14/07, Seongbae Park <seongbae.park@gmail.com> wrote:
On 3/14/07, Sunzir Deepur <sunzird@gmail.com> 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";



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]