This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: A problem with the loop structure
- From: Zdenek Dvorak <rakdver at kam dot mff dot cuni dot cz>
- To: Vladimir Yanovsky <volodyan at gmail dot com>
- Cc: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>, gcc at gcc dot gnu dot org, Vladimir Yanovsky <yanov at il dot ibm dot com>, pinskia at gcc dot gnu dot org, Mircea Namolaru <namolaru at il dot ibm dot com>
- Date: Fri, 4 May 2007 02:12:09 +0200
- Subject: Re: A problem with the loop structure
- References: <48ee23ef0704281453s4de4120evfd605de0ec853f54@mail.gmail.com> <20070428224306.GA31398@atrey.karlin.mff.cuni.cz> <48ee23ef0705011423o773500ar58046ed6d63fe252@mail.gmail.com>
Hello,
> ii)
> In loop_version there are two calls to loop_split_edge_with
> 1. loop_split_edge_with (loop_preheader_edge (loop), NULL);
> 2. loop_split_edge_with (loop_preheader_edge (nloop), NULL);
> nloop is the versioned loop, loop is the original.
>
> loop_split_edge_with has the following:
> new_bb = split_edge (e);
> add_bb_to_loop (new_bb, loop_c);
>
> 1) When we get to the fist call, nloop->outer->num_nodes = 8 while dfs
> returns 6.
then the problem is before this call; you need to check which two blocks
that are marked as belonging to nloop->outer in fact do not belong to
this loop, and why.
Zdenek