gloog calls rewrite_into_sese_closed_ssa, which in turn calls
sese_find_uses_to_rename_bb. sese_find_uses_to_rename_bb looks at every phi in
every basic block. For each incoming edge into that basic block which is
associated with the corresponding use argument of the phi, graphite then calls
sese_find_uses_to_rename_bb. Now for the use found, the def_bb is looked up. If
the def_bb exists and def_bb belongs to the scop and use_bb does not belong to
scope, then a phi is created that can reach the use_bb because def_bb does not
reach use_bb.

Right now the check which determines if def_bb belongs to the scop and use_bb
does not belong to scop is broken since it looks at dominators and post
dominators instead of travesing or looking up the bb's in scop which match with
a given bb.


-- 
           Summary: [graphite] The def for a var exists inside one of the
                    scops bb's but an appropriate phi is not created to
                    allow the phi to reach the use of that def ouside the
                    scop.
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: hjagasia at gcc dot gnu dot org
        ReportedBy: hjagasia at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38446

Reply via email to