------- Comment #4 from hjagasia at gcc dot gnu dot org 2008-09-12 16:52 ------- The reduced test case block-2.c triggers 3 seperate bugs.
First: In tranlate_clast when clast stmt is a stmt_user, we can end up disconnecting the edge that is the exit_edge of the scop that is transformed. This state creates problems because the exit_edge no longer has a destination. Hence when after translate_clast, the exit_edge is redirected with redirect_edge_succ, the edge is already disconnected. Second: Graphite does not handle clast user stmts with constant arguments. Third: Graphite can create scops which overlap. This is an issue if one of the overlapping scops is transformed which can cause some edges to be redirected. When the successive overlapping scops are attempted to be transformed, the basic blocks in the scop are no longer the same. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37485