On 8/12/07, Dave Korn <[EMAIL PROTECTED]> wrote:
> On 11 August 2007 08:42, Emmanuel Fleury wrote:
> > Sunzir Deepur wrote:
> >> so why are those class 3 edges created at all ?
> > I didn't see any 3-edges blocks at all in your example.
>  Not 3-edge blocks; class 3 edges = the green lines.
>
>  They appear to be showing where the fall-through path /would have/ gone in
> those BBs which end with an unconditional jump if there had been no jump.
>
>  Edge class in the vcg output is determined by the 'class' arg passed by
> print_rtl_graph_with_bb to the draw_edge routine in graph.c.  The only place
> that generates class 3 edges is the catch-all if (!edge_printed) clause at the
> end of the for (tmp_rtx) loop.  The FOR_EACH_EDGE loop above will output all
> the 'real' edges that represent possible code flow paths, so it looks to me
> like gcc is using class 3 as a catch-all for things like EDGE_FAKE,
> EDGE_CROSSING, and any other of the kinds of edges (basic-block.h) that the
> compiler maintains for structural reasons that aren't real edges.
>
>  You'd have to ask someone other than me for the details of what kinds of
> things other than real edges the compiler stores edge structs for, but that's
> what ends up being drawn as class 3.

so do you think it's a safe bet to say that all class 3 edges do not represent
a possible flow of code ?

thank you
sunzir

Reply via email to