From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11113 invoked by alias); 1 Aug 2003 22:15:15 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 11106 invoked from network); 1 Aug 2003 22:15:14 -0000 Received: from unknown (HELO vlsi1.ultra.nyu.edu) (128.122.140.213) by sources.redhat.com with SMTP; 1 Aug 2003 22:15:14 -0000 Received: by vlsi1.ultra.nyu.edu (4.1/1.34) id AA04647; Fri, 1 Aug 03 18:21:34 EDT Date: Fri, 01 Aug 2003 23:07:00 -0000 From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Message-Id: <10308012221.AA04647@vlsi1.ultra.nyu.edu> To: gcc@gcc.gnu.org Subject: Problem in split_basic_block X-SW-Source: 2003-08/txt/msg00046.txt.bz2 This comes up compiling the Ada library for ia64/VMS with SJLJ exceptions and flag_non_call_exceptions. Suppose we have a block with a CALL_INSN. Ity has a REG_EH_REGION note. The ia64 splitter splits that up into a number of insns, some of which are memory load insns. Then split_insns copies the REG_EH_REGION note to that load insn. Now we try to split the block. The code moves all edges to the new block. But that's wrong since there might have been an ABNORMAL_CALL edge that depended on the last insn of the block being a CALL_INSN. But the CALL_INSN is now in the previous block. Suggestions? I don't understand this stuff too well.