From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106063 invoked by alias); 9 Oct 2015 19:05:37 -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 106050 invoked by uid 89); 9 Oct 2015 19:05:36 -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,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ob0-f173.google.com Received: from mail-ob0-f173.google.com (HELO mail-ob0-f173.google.com) (209.85.214.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 09 Oct 2015 19:05:35 +0000 Received: by obcgx8 with SMTP id gx8so69457854obc.3 for ; Fri, 09 Oct 2015 12:05:33 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.36.202 with SMTP id s10mr9519246oej.0.1444417533085; Fri, 09 Oct 2015 12:05:33 -0700 (PDT) Received: by 10.76.175.132 with HTTP; Fri, 9 Oct 2015 12:05:32 -0700 (PDT) In-Reply-To: References: Date: Fri, 09 Oct 2015 19:05:00 -0000 Message-ID: Subject: Re: [PATCH] Unswitching outer loops. From: "H.J. Lu" To: Yuri Rumyantsev Cc: Richard Biener , gcc-patches , Igor Zamyatin Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg01015.txt.bz2 On Wed, Oct 7, 2015 at 2:53 AM, Yuri Rumyantsev wrote: > Richard, > > I've fixed adding virtual phi argument and add check on irreducible basic block. > New patch is attached. > > I checked it for bootstrap and regression testing, no new failures. > > ChangeLog: > 2015-10-07 Yuri Rumyantsev > > * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and > "cfghooks.h", add prototypes for introduced new functions. > (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all > checks on ability of loop unswitching to tree_unswitch_single_loop; > invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending > on innermost loop check. > (tree_unswitch_single_loop): Add all required checks on ability of > loop unswitching under zero recursive level guard. > (tree_unswitch_outer_loop): New function. > (find_loop_guard): Likewise. > (empty_bb_without_guard_p): Likewise. > (used_outside_loop_p): Likewise. > (get_vop_from_header): Likewise. > (hoist_guard): Likewise. > (check_exit_phi): Likewise. > > gcc/testsuite/ChangeLog: > * gcc.dg/loop-unswitch-2.c: New test. > * gcc.dg/loop-unswitch-3.c: Likewise. > * gcc.dg/loop-unswitch-4.c: Likewise. > This caused: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67909 H.J.