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