This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ipa-cp heuristics fixes
- From: Dominik Vogt <vogt at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Date: Wed, 16 Dec 2015 10:15:59 +0100
- Subject: Re: ipa-cp heuristics fixes
- Authentication-results: sourceware.org; auth=none
- References: <20151210073037 dot GA40772 at kam dot mff dot cuni dot cz>
- Reply-to: vogt at linux dot vnet dot ibm dot com
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?
Ciao
Dominik ^_^ ^_^
--
Dominik Vogt
IBM Germany