From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20796 invoked by alias); 12 Sep 2008 16:54:20 -0000 Received: (qmail 19627 invoked by uid 48); 12 Sep 2008 16:53:00 -0000 Date: Fri, 12 Sep 2008 16:54:00 -0000 Message-ID: <20080912165300.19626.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/37485] [graphite] Disconnecting exit edge in process of code generation In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjagasia at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-09/txt/msg01468.txt.bz2 ------- 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