From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9246 invoked by alias); 11 Jul 2009 22:45:38 -0000 Received: (qmail 9198 invoked by alias); 11 Jul 2009 22:45:27 -0000 Date: Sat, 11 Jul 2009 22:45:00 -0000 Message-ID: <20090711224527.9197.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/40676] [4.5 Regression] internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hubicka at ucw dot cz" 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: 2009-07/txt/msg00949.txt.bz2 ------- Comment #5 from hubicka at ucw dot cz 2009-07-11 22:45 ------- Subject: Re: [4.5 Regression] internal compiler error: verify_ssa error: definition in block 5 does not dominate use in block 7 Thinking about this more, we change here dominance relation in not-so-obvious way. It is not really textbook case with presence of both abnormal edges that might prevent forwarding consistently everything across the empty BBs and virtual operands that may remain in the BBs otherwise empty. I think we need 1) forward the edges in the tree-ssa-dce itself (i.e. don't do the edge forwarding only when control flow stmt becomes dead but for every edge leading to dead BB that is not abnormal) 2) for empty BBs that remains in the program (only reason would be because they are destination of abnormal edge), send all virtual PHIs for updating since we can not be sure dominance relations are preserved. Sounds sane? If so, I will give it a try tomorrow. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40676