From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 34103 invoked by alias); 16 Dec 2015 09:59:16 -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 34082 invoked by uid 89); 16 Dec 2015 09:59:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qk0-f178.google.com Received: from mail-qk0-f178.google.com (HELO mail-qk0-f178.google.com) (209.85.220.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 16 Dec 2015 09:59:12 +0000 Received: by mail-qk0-f178.google.com with SMTP id k189so55641729qkc.0 for ; Wed, 16 Dec 2015 01:59:12 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.129.133.69 with SMTP id v66mr27538557ywf.68.1450259950747; Wed, 16 Dec 2015 01:59:10 -0800 (PST) Received: by 10.37.202.82 with HTTP; Wed, 16 Dec 2015 01:59:10 -0800 (PST) In-Reply-To: <20151216091559.GA19138@linux.vnet.ibm.com> References: <20151210073037.GA40772@kam.mff.cuni.cz> <20151216091559.GA19138@linux.vnet.ibm.com> Date: Wed, 16 Dec 2015 09:59:00 -0000 Message-ID: Subject: Re: ipa-cp heuristics fixes From: Richard Biener To: vogt@linux.vnet.ibm.com, GCC Patches , Jan Hubicka , Andreas Krebbel Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-12/txt/msg01570.txt.bz2 On Wed, Dec 16, 2015 at 10:15 AM, Dominik Vogt wrote: > On Thu, Dec 10, 2015 at 08:30:37AM +0100, Jan Hubicka wrote: >> * ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p. >> (good_cloning_opportunity_p): Likewise. >> (gather_context_independent_values): Do not return true when >> polymorphic call context is known or when we have known aggregate >> value of unused parameter. >> (estimate_local_effects): Try to create clone for all context >> when either some params are substituted or devirtualization is possible >> or some params can be removed; use local flag instead of >> node->will_be_removed_from_program_if_no_direct_calls_p. >> (identify_dead_nodes): Likewise. > > This commit breaks several guality tests on S/390x: > > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 y == 2 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 y == 2 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 16 y == 2 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 18 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 18 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 18 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 18 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-1.c -O3 -g line 18 y == 2 > FAIL: gcc.dg/guality/pr36728-2.c -O2 line 18 *x == (char) 25 > FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=none line 18 *x == (char) 25 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 y == 2 > FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 *x == (char) 25 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 18 y == 2 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 16 y == 2 > FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 *x == (char) 25 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-2.c -O3 -g line 18 y == 2 > FAIL: gcc.dg/guality/pr36728-2.c -Os line 18 *x == (char) 25 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 14 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 14 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 14 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 14 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-3.c -O3 -g line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 14 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 16 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 14 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 14 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 14 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 14 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 14 arg7 == 30 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 16 arg3 == 3 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 16 arg4 == 4 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 16 arg5 == 5 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 16 arg6 == 6 > +FAIL: gcc.dg/guality/pr36728-4.c -O3 -g line 16 arg7 == 30 > ... > FAIL: gcc.dg/guality/vla-1.c -O1 line 17 sizeof (a) == 6 > FAIL: gcc.dg/guality/vla-1.c -O2 line 17 sizeof (a) == 6 > FAIL: gcc.dg/guality/vla-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none line 17 sizeof (a) == 6 > +FAIL: gcc.dg/guality/vla-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 17 i == 5 > FAIL: gcc.dg/guality/vla-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 17 sizeof (a) == 6 > +FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 i == 5 > FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 sizeof (a) == 6 > FAIL: gcc.dg/guality/vla-1.c -Os line 17 sizeof (a) == 6 > > What can I do to help fixing this? Same on x86_64 btw. If there isn't a bugreport already please open one to track this issue. Thanks, Richard. > Ciao > > Dominik ^_^ ^_^ > > -- > > Dominik Vogt > IBM Germany >