From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1724 invoked by alias); 6 Jan 2015 21:06:33 -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 1710 invoked by uid 89); 6 Jan 2015 21:06:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 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-f182.google.com Received: from mail-ob0-f182.google.com (HELO mail-ob0-f182.google.com) (209.85.214.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 06 Jan 2015 21:06:30 +0000 Received: by mail-ob0-f182.google.com with SMTP id wo20so107252obc.13 for ; Tue, 06 Jan 2015 13:06:28 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.183.24.162 with SMTP id ij2mr18068438obd.18.1420578388559; Tue, 06 Jan 2015 13:06:28 -0800 (PST) Received: by 10.76.185.7 with HTTP; Tue, 6 Jan 2015 13:06:28 -0800 (PST) In-Reply-To: <000501cff8d2$0278b740$076a25c0$@arm.com> References: <544A90E2.7090405@redhat.com> <000501cff8d2$0278b740$076a25c0$@arm.com> Date: Tue, 06 Jan 2015 21:06:00 -0000 Message-ID: Subject: Re: [PATCH][6/n] Merge from match-and-simplify, make forwprop fold all stmts From: "H.J. Lu" To: Zhenqiang Chen Cc: Richard Biener , Jeff Law , Jakub Jelinek , GCC Patches Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg00269.txt.bz2 On Wed, Nov 5, 2014 at 12:25 AM, Zhenqiang Chen wrote: > The patch leads to big regression for float operators on target without hard > fpu support due to register shuffle. > > Please refer https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63743 for more > detail. > > Thanks! > -Zhenqiang > >> -----Original Message----- >> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches- >> owner@gcc.gnu.org] On Behalf Of Jeff Law >> Sent: Saturday, October 25, 2014 1:48 AM >> To: Richard Biener; gcc-patches@gcc.gnu.org >> Cc: Jakub Jelinek >> Subject: Re: [PATCH][6/n] Merge from match-and-simplify, make forwprop >> fold all stmts >> >> On 10/24/14 07:16, Richard Biener wrote: >> > >> > This patch makes GIMPLE forwprop fold all statements, following >> > single-use SSA edges only (as suggested by Jeff and certainly how this >> > will regress the least until we replace manual simplification code >> > that does not restrict itself this way). >> > >> > forwprop is run up to 4 times at the moment (once only for -Og, not at >> > all for -O0), which still seems reasonable. IMHO the forwprop pass >> > immediately after inlining is somewhat superfluous, it was added there >> > just for its ADDR_EXPR propagation. We should eventually split this >> > pass into two. >> > >> > Note that just folding what we propagated into (like the SSA >> > propagators do during substitute-and-fold phase) will miss cases where >> > we propagate into a stmt feeding the one we could simplify. Unless we >> > always fold all single-use (and their use) stmts we have to fold >> > everything from time to time. Changing how / when we fold stuff is >> > certainly sth to look after with fold_stmt now being able to follow >> > SSA edges. >> > >> > Bootstrapped on x86_64-unknown-linux-gnu, testing still in progress. >> > >> > From earlier testing I remember I need to adjust a few testcases that >> > don't expect the early folding - notably two strlenopt cases >> > (previously XFAILed but then PASSed again). >> > >> > I also expect to massage the single-use heuristic as I get to merging >> > the patterns I added for the various forwprop manual pattern matchings >> > to trunk (a lot of them do not restrict themselves this way). >> > >> > Does this otherwise look ok? >> > >> > Thanks, >> > Richard. >> > >> > 2014-10-24 Richard Biener >> > >> > * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and > tree-into-ssa.h. >> > (lattice): New global. >> > (fwprop_ssa_val): New function. >> > (fold_all_stmts): Likewise. >> > (pass_forwprop::execute): Finally fold all stmts. >> Seems reasonable. After all, we can iterate on the single-use heuristic. >> > This also caused: //gcc.gnu.org/bugzilla/show_bug.cgi?id=64511 -- H.J.