From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70764 invoked by alias); 19 Aug 2015 13:57:05 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 70755 invoked by uid 89); 19 Aug 2015 13:57:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 19 Aug 2015 13:57:03 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 8AD6B33EAD9; Wed, 19 Aug 2015 13:57:02 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-201.phx2.redhat.com [10.3.113.201]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t7JDv1Z0018548; Wed, 19 Aug 2015 09:57:02 -0400 Subject: Re: [PATCH] Fix middle-end/67133, part 1 To: Marek Polacek , Richard Biener References: <20150814132945.GS3335@redhat.com> <55CE002E.6000108@redhat.com> <20150814153224.GU3335@redhat.com> <55CE0A5A.4070802@redhat.com> <20150814195836.GB2093@redhat.com> <55CE5054.5080400@redhat.com> <20150814204649.GC2093@redhat.com> <55D21A8D.50004@redhat.com> <20150818194918.GB2729@redhat.com> Cc: GCC Patches From: Jeff Law Message-ID: <55D48B2D.3060907@redhat.com> Date: Wed, 19 Aug 2015 14:25:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20150818194918.GB2729@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-08/txt/msg01089.txt.bz2 On 08/18/2015 01:49 PM, Marek Polacek wrote: > On Tue, Aug 18, 2015 at 10:45:21AM +0200, Richard Biener wrote: >> On Mon, Aug 17, 2015 at 7:31 PM, Jeff Law wrote: >>> But in walking through all that, I think I've stumbled on a simpler >>> solution. Specifically do as a little as possible and let the standard >>> mechanisms clean things up :-) >>> >>> 1. Delete the code that removes instructions after the trap. >>> >>> 2. Split the block immediately after the trap and remove the edge >>> from the original block (with the trap) to the new block. >> >> cfg-cleanup will do that for you if you have a not returning stmt ending >> the previous block. > > The following patch hopefully does what's oulined above. > Arguably I should have renamed the insert_trap_and_remove_trailing_statements > to something more descriptive, e.g. insert_trap_and_split_block. Your > call. > > Bootstrapped/regtested on x86_64-linux, ok for trunk? > > 2015-08-18 Marek Polacek > > PR middle-end/67133 > * gimple-ssa-isolate-paths.c > (insert_trap_and_remove_trailing_statements): Rename to ... > (insert_trap): ... this. Don't remove trailing statements; split > block instead. > (find_explicit_erroneous_behaviour): Don't remove all outgoing edges. > > * g++.dg/torture/pr67133.C: New test. Looks good to me too. jeff