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