2008/2/7 Tobias Grosser <[EMAIL PROTECTED]>:
> 2. Which loops are part of a SCoP:
>
> At the moment we detect the loops, which are part of a SCoP like this:
>
> FORALL_BB_IN_SCOP(bb)
> {
>   VEC_loops_add(bb->loop_father);
> }
>
> This seems incorrect if we look at this SCoP:
>
> h  #loop0
> |
> a  # loop0
> |
> v
> b  # loop1
> |\
> v ^
> b |  #loop1
> | d  #loop1
> v/
> c  #loop1
> |
> v
> f #loop0
>
> entry: h
> exit: e
> SCoP: a, b, c, d, f
>
> So there may be bbs like "a", which have a loop_father, but the
> loop_father is not completely contained in the SCoP. Therefore I do not
> think, it is correct to make these loops part of the SCoP.

FORALL_BB_IN_SCOP(bb)
{
  loop = bb->loop_father;
  entry_loop = scop_entry (scop)->loop_father;
  if (loop != entry_loop)
    VEC_loops_add(loop);
}

?

Sebastian

Reply via email to